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

7
Mengapa hanya menentukan makro jika belum ditentukan?
Di seluruh basis kode C kami, saya melihat setiap makro didefinisikan dengan cara berikut: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif Apa alasan melakukan pemeriksaan definisikan ini daripada hanya menentukan makro? #define BEEPTRIM_PITCH_RATE_DEGPS …



1
Apa yang dilakukan ## (hash ganda) dalam arahan preprocessor?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Baris di atas diambil dari Unreal 4, dan saya tahu saya bisa menanyakannya di forum yang tidak nyata, tapi saya pikir ini adalah pertanyaan C ++ umum yang perlu ditanyakan di sini. Saya mengerti baris pertama mendefinisikan makro, namun saya tidak berpengalaman dalam preprocessor …

3
Gabungkan int ke string menggunakan C Preprocessor
Saya mencoba untuk mencari tahu bagaimana saya bisa menggabungkan #define'd int ke #define' d string menggunakan C Preprocessor. Kompiler saya adalah GCC 4.1 di CentOS 5. Solusinya juga harus berfungsi untuk MinGW. Saya ingin menambahkan nomor versi ke string, tetapi satu-satunya cara agar saya dapat berfungsi adalah membuat salinan nomor …


13
Apa aplikasi dari ## operator preprocessor dan gotcha yang perlu dipertimbangkan?
Seperti yang disebutkan dalam banyak pertanyaan saya sebelumnya, saya sedang mengerjakan K&R, dan saat ini sedang dalam preprocessor. Salah satu hal yang lebih menarik - sesuatu yang tidak pernah saya ketahui sebelumnya dari upaya saya sebelumnya untuk mempelajari C - adalah ##operator preprocessor. Menurut K&R: Operator preprocessor ## menyediakan cara …

4
Perbandingan makro jika-direktif
Mengapa #ifkondisi dalam kode berikut terpenuhi: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif // VALUE }

5
Hitung baris file sumber menggunakan makro?
Apakah mungkin, menggunakan preprocessor C / C ++, untuk menghitung baris dalam file sumber, menjadi makro atau semacam kompilasi-nilai waktu yang tersedia? Misalnya saya bisa mengganti MAGIC1, MAGIC2dan MAGIC3berikut ini, dan mendapatkan nilai 4 entah bagaimana saat menggunakan MAGIC3? MAGIC1 // can be placed wherever you like before the relevant …
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.