列舉(enum)

列舉(Enumeration)是以關鍵字enum開始加上一個列舉名稱,並以大括號括住要群組管理的常數,下面宣告一個列舉Action,大括號中每一個元素稱為列舉元,預設列舉元從第一個開始的實際數值是0,然後依次遞增,所以stop為0、sit為1、play為2、talk為3。
enum Action{stop, sit, play, talk};

也可以為列舉元設定數值,下一個列舉元如果沒有設定數值的話,就自動遞增1,列舉的值不需獨一無二,以下stop為1、sit為2、play為2、talk為3。
enum Action{stop=1, sit, play=2, talk};

列舉只能接受特定列舉元,下面的列舉實例action只接受來自Action中規定的列舉元,雖然實際上列舉元對應一個數值,但不可以直接指定數值給列舉。
Action action = stop;
Action action = 1; //錯誤

列舉常用在函式的引數傳遞,與純綷使用常數來作為操作相比,列舉可以限制傳入函式的引數範圍,讓我們程式更安全且較易理解,以下為簡單的列舉使用。

enum Action{stop=1, sit, play=2, talk};

int main() {
    Action action = talk;
    int ret = stop;        //ret=1
    return 0;
}