Saya sedang mengkompilasi program saya yang akan berjalan di linux gcc 4.4.1 C99.
Saya baru saja meletakkan #defines saya untuk memisahkan kode yang akan dikompilasi pada windows atau linux. Namun, saya mendapat kesalahan ini.
error: macro names must be identifiers.
Menggunakan kode ini
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Namun, ketika saya mengubah ini kesalahan diperbaiki:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Saya hanya ingin tahu mengapa saya mendapatkan kesalahan itu dan mengapa #defines berbeda?
Terimakasih banyak,
||
#if defined(NAME)
dari awal dan menghindari membuat#ifdef
pernyataan.dan
adalah sama,
tetapi untuk melakukan beberapa hal sekaligus, Anda dapat menggunakan didefinisikan, seperti
sumber
#ifdef
memeriksa apakah makro dengan nama itu telah ditentukan,#if
mengevaluasi ekspresi dan memeriksa nilai sebenarnyasumber
#if defined
dan#ifdef
.