ฉันกำลังรวบรวมโปรแกรมของฉันที่จะทำงานบน linux gcc 4.4.1 C99
ฉันแค่ใส่ #defines เพื่อแยกโค้ดที่จะคอมไพล์บน windows หรือ linux อย่างไรก็ตามฉันได้รับข้อผิดพลาดนี้
error: macro names must be identifiers.
โดยใช้รหัสนี้
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
อย่างไรก็ตามเมื่อฉันเปลี่ยนเป็นข้อผิดพลาดได้รับการแก้ไข:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
ฉันแค่สงสัยว่าทำไมฉันถึงได้รับข้อผิดพลาดนั้นและทำไม #defines จึงแตกต่างกัน
ขอบคุณมาก,