Pertanyaan yang ditandai 'c-preprocessor'

>
32
balasan

Apa perbedaan antara #include <filename> dan #include "filename"?

Dalam bahasa pemrograman C dan C ++, apa perbedaan antara menggunakan kurung sudut dan menggunakan kutipan dalam pernyataan sertakan sebagai berikut? #include <filename> #include "filename"
ditetapkan pada 22 Agustus '08 pada jam 4:40
5
balasan

Mengapa preprosesor C menafsirkan kata "linux" sebagai konstanta "1"?

Mengapa preprosesor C dalam GCC menafsirkan kata linux (huruf kecil) sebagai konstanta 1? test.c: #include <stdio.h> int main (void) {int linux = 5; return 0; } Hasil $ gcc -E test.c (berhenti setelah tahap pra ...
atur 06 Oktober '13 pada 19:09
11
balasan

Mengapa menggunakan instruksi do-while dan if-else yang tidak ada artinya di makro?

Di banyak makro C / C ++, saya melihat kode makro dibungkus dengan apa yang tampaknya menjadi tidak berarti sambil melakukan loop. Berikut ini beberapa contohnya. #define FOO (X) do {f (X); g (x); } while (0) #define FOO (X) if (1) {f (X); g (x); } lain saya tidak melihat apa yang dilakukan sementara. Kenapa ...
set 30 September '08 jam 8:36 malam
2
balasan

Mengapa semua file C yang ditulis oleh guru saya dimulai dengan #?

Mengapa semua file C yang ditulis oleh guru saya dimulai dengan #? Saya melihat beberapa catatan mata kuliah, dan setiap file sumber C dimulai dengan # di baris pertama program. Kemudian spasi muncul dan ikuti ...
ditetapkan pada 11 Agustus '17 jam 10:17
3
balasan

Mengapa #ifndef dan #define digunakan dalam file header C ++?

Saya melihat kode ini, seperti biasa, di awal file header: #ifndef HEADERFILE_H #define HEADERFILE_H Dan di akhir file #endif Apa tujuan dari ini?
Setel 31 Oktober '09 jam 13:06
4
balasan

Menggabungkan C ++ dan C - bagaimana cara kerja #ifdef __cplusplus?

Saya sedang mengerjakan sebuah proyek dengan banyak kode C. Kami mulai menulis dalam C ++, yang berarti, akhirnya, untuk mengkonversi kode usang. Saya agak bingung dengan bagaimana C dan C ++ berinteraksi. Saya mengerti bahwa membungkus kode C dengan extern ...
aktifkan 24 September. '10 jam 20:03
3
balasan

Bagaimana mendeteksi andal Mac OS X, iOS, Linux, Windows di prepro C?

Jika ada kode C / C ++ lintas-platform yang perlu dikompilasi di Mac OS X, iOS, Linux, Windows, bagaimana saya bisa mendeteksinya selama proses preprosesor?
diatur pada 07 Mei '11 pukul 11:37
3
balasan

Tentukan makro preprosesor melalui cmake

Bagaimana cara mendefinisikan variabel preprosesor melalui cmake? Kode yang setara adalah #define foo.
atur 26 Januari '12 pada jam 14:35
6
balasan

GCC preprocessor dump mendefinisikan

Apakah ada cara bagi gcc / g ++ untuk menghapus preprosesornya dari baris perintah? Maksud saya hal-hal seperti __GNUC__, __STDC__, dll.
atur 08 Feb '10 jam 10:40 malam
12
balasan

MIN dan MAX dalam C

Di mana MIN dan MAX didefinisikan dalam C, jika sama sekali? Apa cara terbaik untuk mengimplementasikannya, seuniversal dan seaman mungkin? (Lebih disukai menggunakan ekstensi / kompilator inline untuk kompilator arus utama.)
set 09 Agustus. '10 jam 7:49
10
balasan

Bagaimana saya bisa melihat file sumber C / C ++ setelah preprocessing di Visual Studio?

Katakanlah saya memiliki file sumber dengan banyak arahan preprosesor. Dapatkah saya melihat seperti apa setelah preprocessor sibuk dengan itu?
ditetapkan pada 10 November '08 jam 10:11
12
balasan

C # mendefinisikan makro untuk pencetakan debug

Mencoba membuat makro yang dapat digunakan untuk mencetak pesan debugging ketika DEBUG didefinisikan, misalnya, kode pseudo berikut: #define DEBUG 1 #define debug_print (args ...) if (DEBUG) fprintf (stderr, args) Bagaimana ini dilakukan dengan makro?
atur 29 Oktober '09 jam 19:17
12
balasan

Peringatan kompiler "Tidak ada baris baru di akhir file"

Apa alasan untuk peringatan berikut di beberapa kompiler C ++? Tidak ada baris di akhir file. Mengapa saya perlu baris kosong di akhir file sumber / header?
mengatur 16 September '08 pada jam 4:38 sore
5
balasan

Cara membuat variabel makro (jumlah variabel argumen)

Saya ingin menulis makro di C, yang mengambil sejumlah parameter, bukan nomor tertentu Contoh: # define macro (X) something_complicated (apa pun (X)) di mana X adalah sejumlah parameter yang saya butuhkan ini karena apa pun yang kelebihan beban ...
ditetapkan pada 25 Maret 2009 pada 5:08
38
balasan

Kapan makro C ++ bermanfaat?

Preprosesor C dapat dibenarkan takut dan menghindari komunitas C ++. Fungsi bawaan, konstanta dan pola biasanya merupakan alternatif yang lebih aman dan lebih baik untuk #define. Makro berikut: #define SUCCEEDED (hr) ((HRESULT) (jam)> = 0) no ...
ditetapkan pada 18 September '08 jam 10:46 malam