1. 程式人生 > >enum關鍵字的使用技巧--C、MFC、、

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 巨集一次只能定義一個