ฉันรู้ว่า#define
s ฯลฯ ปกติไม่เคยเยื้อง ทำไม?
ฉันกำลังทำงานกับโค้ดบางตัวในขณะนี้ซึ่งมีส่วนผสมที่น่ากลัวของ#define
s, #ifdef
s, #else
s, #endif
s และอื่น ๆ ทั้งหมดนี้มักจะผสมกับรหัส C ปกติ การไม่เยื้อง#define
s ทำให้อ่านยาก และส่วนผสมของโค้ดเยื้องกับ#define
s ที่ไม่เยื้องเป็นฝันร้าย
ประโยชน์ของการไม่เยื้อง#define
s คืออะไร? มันทำให้ฉันเป็นคนไม่ดีหรือเปล่าถ้าฉันเยื้องย่างเข้าไป นี่ไม่ดีกว่านี้เหรอ?
#ifdef SDCC
#if DEBUGGING == 1
#if defined (pic18f2480)
#define FLASH_MEMORY_END 0x3DC0
#elif defined (pic18f2580)
#define FLASH_MEMORY_END 0x7DC0
#else
#error "Can't set up flash memory end!"
#endif
#else
#if defined (pic18f2480)
#define FLASH_MEMORY_END 0x4000
#elif defined (pic18f2580)
#define FLASH_MEMORY_END 0x8000
#else
#error "Can't set up flash memory end!"
#endif
#endif
#else
#if DEBUGGING == 1
#define FLASH_MEMORY_END 0x7DC0
#else
#define FLASH_MEMORY_END 0x8000
#endif
#endif