因此,一個枚舉是這樣工作的:爲什麼在#define一樣有效時使用枚舉?
enum {
false,
true
}
這相當於
int false = 0
int true = 1
我爲什麼不可以替代enum
與#define
?
#define FALSE 0
#define TRUE 1
對我來說,它似乎是可以互換的。我知道#define
能夠處理參數,因此以與enum
完全不同的方式運行。 enum
當我們有#define
在這種情況下什麼是主要用途?
如果我猜測,因爲#define
是一個預處理器功能,enum
會有一些運行時間優勢。我有多遠?
在此先感謝。
請參閱http://stackoverflow.com/questions/136946/difference-between-enum-and-define-statements – SirDarius 2011-03-09 08:56:02
奇怪的是,那個沒有出現在我的搜索結果中。謝謝! – userenum 2011-03-09 09:02:17
它不等同於'int false = 0'或'int const false = 0'(這會更合適)。 'int'變量會有一個地址,然後你可以做'&false',而你不能''enum'。 – 2011-03-09 10:40:05