Saya tahu bahwa #define
s, dll. Biasanya tidak pernah menjorok ke dalam. Mengapa?
Saya sedang mengerjakan beberapa kode saat ini yang memiliki campuran mengerikan #define
s, #ifdef
s, #else
s, #endif
s, dll. Semua ini sering tercampur dengan kode C normal. Huruf yang tidak menjorok ke #define
dalam membuat mereka sulit dibaca. Dan campuran kode indentasi dengan non-indentasi #define
adalah mimpi buruk.
Apa manfaat tidak membuat indentasi #define
? Apakah saya menjadi orang jahat jika saya membuat indentasi? Bukankah ini jauh lebih bagus?
#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
sumber
#ifdef
garis di bagian mana saya memiliki kode aktual. Sebaliknya, jika saya membutuhkan hal-hal bersyarat, saya akan memasukkannya ke dalam fungsi yang difaktorkan atau memfaktorkan makro; jauh lebih jelas cara saya menemukan (yah, setidaknya bagi saya). Idealnya, semua bagian yang difaktorkan akan berada di file lain (header atau file sumber yang dikompilasi secara bersyarat; "kondisi" biasa adalah untuk platform apa kode dibuat).Untuk contoh yang Anda berikan, mungkin tepat menggunakan lekukan untuk membuatnya lebih jelas, mengingat Anda memiliki struktur arahan bersarang yang kompleks.
Secara pribadi saya pikir itu berguna untuk menjaga mereka tidak menjorok sebagian besar waktu, karena arahan ini beroperasi secara terpisah dari sisa kode Anda. Direktif seperti #ifdef ditangani oleh pra-prosesor, sebelum kompilator pernah melihat kode Anda, jadi blok kode setelah perintah #ifdef bahkan tidak dapat dikompilasi .
Menjaga direktif secara visual terpisah dari kode Anda lebih penting ketika mereka diselingi dengan kode (daripada blok arahan khusus, seperti dalam contoh yang Anda berikan).
sumber
Solusi umum adalah dengan mengomentari arahan, sehingga Anda dengan mudah mengetahui apa yang mereka maksud:
sumber
Di hampir semua kompiler C / CPP yang tersedia saat ini, hal itu tidak dibatasi. Terserah pengguna untuk memutuskan bagaimana Anda ingin menyelaraskan kode. Selamat membuat kode.
sumber