enum關鍵字的使用技巧--C、MFC、、
列舉型別的使用方法
一般的定義方式如下:
enum enum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
...
ENUM_CONST_n
} enum_variable_name;
注意:enum_type_name 是自定義的一種資料資料型別名,而
enum_variable_name 為
enum_type_name型別的一個變數,也就是我們平時常說的列舉變數。實
際上enum_type_name
型別是對一個變數取值範圍的限定,而花括號內是它的取值範圍,即
enum_type_name 型別
的變數enum_variable_name 只能取值為花括號內的任何一個值,如果賦
給該型別變數的值
不在列表中,則會報錯或者警告。ENUM_CONST_1、ENUM_CONST_2、...、
ENUM_CONST_n,這些成員都是常量,也就是我們平時所說的列舉常量(
常量一般用大寫)。
enum 變數型別還可以給其中的常量符號賦值,如果不賦值則會從被賦初
值的那個常量開始
依次加1,如果都沒有賦值,它們的值從0 開始依次遞增1。如分別用一
個常數表示不同顏
色:
enum Color
{
GREEN = 1,
RED,
BLUE,
GREEN_RED = 10,
GREEN_BLUE
}ColorVal;
其中各常量名代表的數值分別為:
GREEN = 1
RED = 2
BLUE = 3
GREEN_RED = 10
GREEN_BLUE = 11
列舉與#define 巨集的區別?
下面再看看列舉與#define 巨集的區別:
1)#define 巨集常量是在預編譯階段進行簡單替換。列舉常量則是在編譯
的時候確定其值。
2)一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量。
3)列舉可以一次定義大量相關的常量,而#define 巨集一次只能定義一個