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 #.

19
#ifdef vs #if - mana yang lebih baik / lebih aman sebagai metode untuk mengaktifkan / menonaktifkan kompilasi bagian kode tertentu?
Ini mungkin masalah gaya, tetapi ada sedikit perbedaan dalam tim pengembang kami dan saya bertanya-tanya apakah ada orang lain yang punya ide tentang masalah ini ... Pada dasarnya, kami memiliki beberapa pernyataan cetak debug yang kami matikan selama pengembangan normal. Secara pribadi saya lebih suka melakukan hal berikut: //---- SomeSourceFile.cpp …

3
Makro standar apa yang dapat saya gunakan untuk mendeteksi dentang?
Saya mencoba mendeteksi kompiler yang digunakan untuk mengkompilasi kode sumber saya. Saya dapat dengan mudah menemukan makro yang telah ditentukan untuk memeriksa MSVC atau GCC (lihat http://predef.sourceforge.net/ misalnya), tetapi saya tidak dapat menemukan makro untuk memeriksa adanya dentang. Apakah seseorang tahu jika clang mendefinisikan makro seperti __CLANG__untuk mengetahui apa yang …


10
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 compilation)


7
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 melakukan: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK yang …
103 c++  c  macros  c-preprocessor 

11
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 fungsi?

8
Bagaimana mendefinisikan simbol preprocessor di Xcode
Apakah mungkin untuk menyetel simbol untuk kompilasi kondisional dengan menyiapkan properti dalam proyek Xcode? Tujuan saya adalah membuat simbol yang tersedia untuk semua file, tanpa harus menggunakan import / include, sehingga sekumpulan kelas umum dapat memiliki perilaku khusus di beberapa project. Seperti berikut ini, tetapi dengan simbol saya sendiri. #if …

4
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 hasilnya?

8
Mengindentasi #defines
Saya tahu bahwa #defines, dll. Biasanya tidak pernah menjorok ke dalam. Mengapa? Saya sedang mengerjakan beberapa kode saat ini yang memiliki campuran mengerikan #defines, #ifdefs, #elses, #endifs, dll. Semua ini sering tercampur dengan kode C normal. Huruf yang tidak menjorok ke #definedalam membuat mereka sulit dibaca. Dan campuran kode indentasi …

12
C ++ preprocessor __VA_ARGS__ jumlah argumen
Pertanyaan sederhana yang tidak dapat saya temukan jawabannya di internet. Dalam makro argumen variadic, bagaimana menemukan jumlah argumen? Saya setuju dengan boost preprocessor, jika ada solusinya. Jika itu membuat perbedaan, saya mencoba untuk mengubah jumlah variabel argumen makro untuk meningkatkan urutan, daftar, atau larik preprocessor untuk pemrosesan ulang lebih lanjut.


4
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 baik-baik saja dengan solusi boost (simpan untuk gelombang) …

14
Masalah Kompilasi, Bangun, atau Arsipkan dengan Xcode 4 (dan dependensi)
Pertanyaan ini telah berkembang selama beberapa minggu terakhir untuk membahas masalah yang lebih umum xcode4 (dan proyek peningkatan versi lebih lama xcodes). Namun banyak masalah yang dapat diselesaikan dengan mengikuti instruksi yang sama. Jika Anda mengalami salah satu masalah berikut, coba metode dalam jawaban yang diterima: Xcode 4 gagal mengarsipkan …

8
Mengapa makro preprocessor jahat dan apa alternatifnya?
Saya selalu menanyakan hal ini tetapi saya tidak pernah menerima jawaban yang benar-benar bagus; Saya pikir hampir semua programmer bahkan sebelum menulis "Hello World" yang pertama telah menemukan frase seperti "makro tidak boleh digunakan", "makro jahat" dan seterusnya, pertanyaan saya adalah: mengapa? Dengan C ++ 11 baru, apakah ada alternatif …

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.