3
直到我意識到我不需要命名emun時,我對typedef/enum有點困惑。在使用typedef時,這兩者之間有什麼區別/好處,第二個對我來說似乎更容易理解。unnamed enum&typedef?
第一示例:
typedef enum enumMenuItems {
none,
add,
save,
load,
list,
remove
} menuItems;
menuItems optionSelect = none;
第二示例:
typedef enum {
Earth = 1,
Mars,
Saturn,
Neptune,
Jupiter
} planets;
planets closest = Mars;
。
編輯:
typedef enum enumMenuItems {
none,
add,
save,
load,
list,
remove
} menuItems;
所以上面的本質上定義兩種類型,一種稱爲枚舉enumMenuItems和所謂的菜單項enumMenuItems的第二一個typedef。
menuItems optionSelect = save;
enum enumMenuItems optionSelect = save;
上述兩個聲明基本上是相同的,一個使用利用枚舉typedef的和其他。因此,如果您使用typedef,則可以將您的枚舉保留爲未命名,因爲可以通過typedef menuItem訪問該類型。
加里
我對你的編輯有點困惑,佈局不僅僅是風格/個人喜好的問題? – fuzzygoat 2009-11-30 18:27:16
當然,只是想區分聲明和枚舉的使用。 NBD。 – 2009-11-30 19:54:52
編輯中的註釋看起來基本正確。有一些語義上的狡辯,但實際上我認爲它不重要。 – 2009-11-30 19:55:52