[點評:枚舉一般用於定義一個集合,如色彩,星期等等,他提供了更加貼近實際的對對象的描述,方便了編程工作.]
下面簡單介紹下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定義的只能是整型的常量表)