枚舉是個好東西,它和結構體一樣,都可以定義一種數據類型,但是枚舉有一個更優點,就是它可以默認指定定義的初始值。
有一個項目,涉及到CPU卡,卡片有錯誤、上電、DF01目錄等狀態,如果單獨定義這些變量,要使用很多變量,這里有一個規律,即:CPU卡不能同時為這幾種狀態中的幾個,只能為其中的一個,這樣,我們可以定義一個枚舉類型變量,例如:
//標識ic的幾種狀態
typedef enum
{
ICC_ERROR,
ICC_NO_EXIST,
ICC_EXIST,
ICC_POWER_OFF,
ICC_POWER_ON,
ICC_IN_DIR_1001
} t_IccStatus;
typedef enum
{
ICC_ERROR,
ICC_NO_EXIST,
ICC_EXIST,
ICC_POWER_OFF,
ICC_POWER_ON,
ICC_IN_DIR_1001
} t_IccStatus;
t_IccStatus getIccStatus;
在程序中,使用這個枚舉變量既能標識標識在整個工程中CPU卡的狀態,簡潔,明了,並且節省了很多全局變量的使用。
返回值類型為枚舉:
一般情況下,一個函數都有一個返回值,在一個工程中,如果在每個出錯點,都定義一個特殊數字的返回值,這樣,在main中,返回的就是唯一值,這樣,可以很快的定位出出錯點。
如果和上面的枚舉配合起來,將函數的返回值定義為枚舉類型,在定義枚舉時,使用英文單詞來實現各種不同返回值的定義,這樣,在調試的時候,能夠知名達意,很快的找到出錯點,達到事半功倍的效果。