[英]Advantages in using an enum to define a single value? (C)
最近,在這個問題中,我看到一個用於定義單個值的枚舉。 例如:
enum { BITS_PER_WORD = 32 };
代替:
#define BITS_PER_WORD 32
假設以后不會添加更多成員,那么這樣做的好處是什么? (或者這是個人品味的問題)
換句話說,如果我使用one-off int定義的現有代碼,是否有任何理由改變上面顯示的一次性枚舉?
出於好奇,我將GCC的優化匯編程序輸出與一些非平凡的代碼進行了比較,結果在枚舉/定義之間保持不變。
枚舉常量有幾個優點:
宏有幾個不同的優點:
BITS_PER_WORD
是枚舉常量,則#if BITS_PER_WORD == 32
將不起作用)。 #undef
)。 一個優點是enum
是作用域的,您可以在塊內定義enum
。 宏也會擴展,例如:
foo.BITS_PER_WORD;
甚至
void foo(int BITS_PER_WORD) { /* ... */ }
宏的一個優點是,您可以將其定義為非int
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.