文章作者 : darker2020
參考資料 : C++原文書、微軟的C語言文件
語法 : enum typeName {value1, value2, ... };
value1, value2, ...被稱為 enumerators.
你可以指定值,默認情況下 value1 = 0, value2 = 1, ... 以此類推。注意value不是變數。
要注意的是,value不能有單引號、名稱為數字開頭等等...
如果你指定value3 = 5;
那麼結果 value1 = 0, value2 = 1, value3 = 5, value4 = 6, value5 = 7,......
最常見的例子就是一個星期 :
enum DAY {sunday = 0, monday, tuesday, wednesday, thursday, friday, saturday};
我們可以再宣告一個enum型別的變數來儲存
Day favoriteDay;
還可以再複製值後再存入另一個變數
favoriteDay = wednesday;
兩者可以合併寫成一句 :
Day favoriteDay = wednesday;
Day myDay = mondey;
因為沒有數學運算符號可以允許使用在enum上,所以以下皆為不合法
favoriteDay = myDay + 2;
favoriteDay = monday + wednesday;
favoriteDay = favoriteDay *2
favoriteDay++;
若要將整數值明確指派給列舉資料類型的變數,請使用類型轉換(C語言參考手冊提到):
C++和C語言的方法並不相同,C語言請去看C語言參考手冊,以下只示範C++
favoriteDay = monday;
favoriteDay = static_cast<sports>(favoriteDay +1);
//after the statement : favoriteDay = tuesday;
基本的介紹到這裡就完成了,後續有興趣自己去看資料吧。
我這篇只是為了那篇猜拳遊戲才寫的= =
延伸 :
1. 對enum型別使用關係運算符(<=、>=、<...)
2. 在for的條件中使用enum型別(使用數學運算要轉型,關係不用)
3. 定義列舉型別,並使用列舉來宣告,寫成一行。
enum grades {A,B,C,D,F} courseGrade;
enum coins {penny, nickel, dime, halfdollar, dollar} change, usCoins;
4. 匿名類型、用typdef創造匿名。