c語言列舉詳解

beachboyy發表於2014-10-29

列舉一般用於定義一個集合,如色彩,星期等等,他提供了更加貼近實際的對物件的描述,方便了程式設計工作.

    下面簡單介紹下C語言中的列舉型別和在Linux系統中的作用。

    列舉是一個被命名的整型常數的集合, 列舉在日常生活中很常見。

    例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一個列舉。

    列舉的說明與結構和聯合相似, 其形式為:

    enum 列舉名{

    識別符號[=整型常數],

    識別符號[=整型常數],

    ...

    識別符號[=整型常數],

    } 列舉變數;

    如果列舉沒有初始化, 即省掉"=整型常數"時, 則從第一個識別符號開始, 順

    次賦給識別符號0, 1, 2, ...。但當列舉中的某個成員賦值後, 其後的成員按依次

    加1的規則確定其值。

    例如下列列舉說明後, x1, x2, x3, x4的值分別為0, 1, 2, 3。

    enum string{x1, x2, x3, x4}x;

    當定義改變成:

    enum string

    {

    x1,

    x2=0,

    x3=50,

    x4,

    }x;

    則x1=0, x2=0, x3=50, x4=51

    注意:

    1. 列舉中每個成員(識別符號)結束符是",", 不是";", 最後一個成員可省略

    ","。

    2. 初始化時可以賦負數, 以後的識別符號仍依次加1。

    3. 列舉變數只能取列舉說明結構中的某個識別符號常量。

    例如:

    enum string

    {

    x1=5,

    x2,

    x3,

    x4,

    };

    enum strig x=x3;

    此時, 列舉變數x實際上是7。

    enum   關鍵字在c中用的是比較多的,它常用來定義標記整型常量,你去看許多作業系統的原始碼,都有用這個關鍵字來一次定義許多標記整型常量,其實它相當於定義一個整型常量的表,方便應用時查詢。當然他的大部分功能都可以被巨集定義代替,不過畢竟enum關鍵字定義的東東是支援型別檢查的,可以用編譯器來發現一些錯誤(enum定義的只能是整型的常量表)


相關文章