C語言 - 第三十四章 | 列舉(enum)
列舉(enum)
C
中列舉(Enumeration
)型別,就是以關鍵字enum
開始加上列舉名稱,並以大括號括住要列舉的常數。
1 | enum Action{stop, sit, stand, walk, run}; |
例中宣告一個列舉型態Action
,大括號中每一個元素稱為列舉元(enumerator
),預設上列舉元從第一個開始的實際數值是0
,然後依次遞增,以上例而言,stop
為0
、sit
為1
、stand
為2
、walk
為3
、run
為4
,也可以自行為列舉元設定數值。
1 | enum Action{stop = 1, sit, stand, walk, run}; |
上例來說,stop
為1
,下一個列舉元如果沒有設定數值的話,則自動遞增1
,所以sit
為2
、stand
為3
、walk
為4
、run
為5
,列舉的常數值不需獨一無二。
1 | enum Action{stop = 1, sit, stand = 2, walk, run}; |
下一個列舉元如果沒有設定數值的話,則自動遞增1
,所以上例中stop
為1
、sit
為2
、stand
為2
、walk
為3
、run
為4
。
宣告列舉之後,可以用它來宣告列舉變數。
1 | enum Action action = stop; |
上例中action
可接受的數值範圍為列舉元中的數值範圍,超出的話可能會有不可預期的行為。
在必要的時候,列舉元的數值可用來與其它數值作運算。
1 | enum Action action = stand; |
列舉值的數值被取出再進行加2
,所以上例中會在文字模式下顯示數值4
。
註:以上參考了
enum