#ifndef __GNUC__ mencekik saya
Pertanyaan ini mungkin sangat aneh, saya sedang mengerjakan beberapa kode lama (bukan dari saya). Saya sebenarnya bukan pemrogram C, tetapi saya mencoba memahami apa yang seharusnya dilakukan bagian kode ini. Untungnya bagian yang aneh tidak terlalu panjang (bagian dari konfigurasi):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
Jika ini bukan kompiler GNU maka "choke me"... apa choke memaksudnya ini ... Saya benar-benar tidak mengerti. (dan hanya menemukan hal-hal aneh saat googling mencekik saya -.-)
Jawaban
Ini seharusnya menjadi sesuatu yang tidak valid C dan akan memicu kesalahan sintaks, mencegah file untuk dikompilasi.
Agaknya programmer tidak bermaksud agar kode tersebut bekerja dengan kompiler apa pun kecuali GNU C (gcc), jadi ini akan memaksa build untuk gagal jika kompiler lain digunakan. Tidak ada arti khusus untuk kata-kata yang dipilih, kecuali bahwa "choke me" mungkin berarti "ini adalah sesuatu yang tidak dapat 'ditelan' oleh kompiler dan akan membunuhnya."
Pendekatan yang lebih modern akan digunakan #error.
Ini adalah pernyataan yang tidak valid, jadi akan menghasilkan kesalahan.