Pertanyaan yang diberi tag «c-preprocessor»

Prosesor makro tekstual diterapkan sebelum mengkompilasi program bahasa C dan C ++. Tag ini juga dapat digunakan untuk pertanyaan tentang kompiler / bahasa lain yang berasal dari atau yang memiliki fitur identik, seperti #directives di Objective-C atau C #.

8
Overloading Makro pada Jumlah Argumen
Saya punya dua makro FOO2dan FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Saya ingin mendefinisikan makro baru FOOsebagai berikut: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Tetapi ini tidak berhasil karena makro tidak membebani jumlah argumen. Tanpa memodifikasi FOO2dan FOO3, ada beberapa cara untuk mendefinisikan makro FOO(menggunakan __VA_ARGS__atau sebaliknya) untuk mendapatkan …
184 c  macros  c-preprocessor 

30
Kapan makro C ++ bermanfaat? [Tutup]
Ditutup . Pertanyaan ini perlu lebih fokus . Saat ini tidak menerima jawaban. Ingin meningkatkan pertanyaan ini? Perbarui pertanyaan sehingga berfokus pada satu masalah hanya dengan mengedit posting ini . Ditutup 2 tahun yang lalu . Perbaiki pertanyaan ini The C preprocessor adalah dibenarkan ditakuti dan dijauhi oleh C ++ …



6
__FILE__, __LINE__, dan __FUNCTION__ penggunaan dalam C ++
Dengan anggapan bahwa kompiler C ++ Anda mendukungnya, apakah ada alasan khusus untuk tidak menggunakannya __FILE__, __LINE__dan __FUNCTION__untuk tujuan logging dan debugging? Saya terutama prihatin dengan memberikan data yang menyesatkan pengguna — misalnya, melaporkan nomor baris yang salah atau fungsi sebagai hasil dari optimasi — atau sebagai akibatnya mendapatkan hasil …

2
Bagaimana cara menggabungkan dua kali dengan prepro C dan memperluas makro seperti pada “arg ## _ ## MACRO”?
Saya mencoba untuk menulis sebuah program di mana nama-nama beberapa fungsi tergantung pada nilai variabel makro tertentu dengan makro seperti ini: #define VARIABLE 3 #define NAME(fun) fun ## _ ## VARIABLE int NAME(some_function)(int a); Sayangnya, makro NAME()mengubahnya menjadi int some_function_VARIABLE(int a); daripada int some_function_3(int a); jadi ini jelas cara yang …

10
Alternatif standar untuk trik ## __ VA_ARGS__ GCC?
Ada masalah terkenal dengan arg kosong untuk makro variadic di C99. contoh: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Penggunaan di BAR()atas memang salah menurut standar C99, karena akan diperluas ke: printf("this breaks!",); Perhatikan tanda koma - tidak bisa digunakan. Beberapa kompiler (mis: Visual …


17
“#Include” file teks dalam program C sebagai char []
Apakah ada cara untuk memasukkan seluruh file teks sebagai string dalam program C pada waktu kompilasi? sesuatu seperti: file.txt: This is a little text file main.c: #include <stdio.h> int main(void) { #blackmagicinclude("file.txt", content) /* equiv: char[] content = "This is\na little\ntext file"; */ printf("%s", content); } mendapatkan program kecil yang …

15
Haruskah saya menggunakan #define, enum atau const?
Dalam proyek C ++ yang sedang saya kerjakan, saya memiliki semacam flag nilai yang dapat memiliki empat nilai. Keempat bendera itu bisa digabungkan. Bendera menggambarkan rekaman dalam database dan dapat: rekor baru catatan dihapus catatan yang dimodifikasi catatan yang ada Sekarang, untuk setiap catatan saya ingin menyimpan atribut ini, jadi …




3
Penggabungan string makro C / C ++
#define STR1 "s" #define STR2 "1" #define STR3 STR1 ## STR2 Apakah mungkin untuk menggabungkan STR3 == "s1"? Anda dapat melakukan ini dengan meneruskan args ke fungsi Makro lainnya. Tetapi apakah ada cara langsung?
121 c++  c  c-preprocessor 


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.