Pertanyaan yang diberi tag c-preprocessor

121
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

110
Nomor baris C / C ++

Demi tujuan debugging, bisakah saya mendapatkan nomor baris di kompiler C / C ++? (cara standar atau cara khusus untuk kompiler tertentu) misalnya if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic...

103
Koma dalam makro C / C ++

Katakanlah kita memiliki makro seperti ini #define FOO(type,name) type name Yang bisa kita gunakan seperti FOO(int, int_var); Tetapi tidak selalu sesederhana itu: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Tentu saja kami bisa...

101
Makro vs Fungsi di C

Saya selalu melihat contoh dan kasus di mana menggunakan makro lebih baik daripada menggunakan fungsi. Bisakah seseorang menjelaskan kepada saya dengan contoh kelemahan makro dibandingkan dengan suatu

100
Peran #ifdef dan #ifndef

#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); Dalam hal ini apa peran #ifdefdan #ifndef, dan apa

99
Pragma dalam mendefinisikan makro

Apakah ada cara untuk menyematkan pernyataan pragma di makro dengan pernyataan lain? Saya mencoba mencapai sesuatu seperti: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type Saya...