1.枚舉的普通寫法
typeof enum{
TypeA_Val1,
TypeA_Val2,
TypeA_Val3
} TypeA;
像這樣創(chuàng)建一個(gè)枚舉, 我們來運(yùn)用它, 在日常代碼中很常見, 而在編寫過程中, 經(jīng)常要用它和數(shù)值對(duì)換.
比如我設(shè)置
TypeA A = (TypeA)intValue;
這樣的寫法會(huì)導(dǎo)致賦值給A一個(gè)不存在的類型的情況
2.加上范圍保護(hù)
TypeA A = (TypeA)MAX(MIN(intValue, TypeA_Val3), TypeA_Val1);
這樣就能限定在規(guī)定范圍內(nèi)
但是經(jīng)常維護(hù)代碼就會(huì)發(fā)現(xiàn)
typeof enum{
TypeA_Val1,
TypeA_ValC
} TypeA;
枚舉經(jīng)常會(huì)根據(jù)實(shí)際情況刪減增添, 會(huì)導(dǎo)致判斷失效報(bào)錯(cuò), 有個(gè)簡單的辦法來解決它
typeof enum{
TypeA_NONE = -1,
TypeA_Val1,
TypeA_ValC,
TypeA_TOTAL
} TypeA;
添加NONE和TOTAL這兩個(gè)值
NONE設(shè)置為-1, 不影響之后的枚舉值
范圍保護(hù)就變成了
TypeA A = (TypeA)MAX(MIN(intValue, TypeA_TOTAL-1), TypeA_NONE);
這樣, 在這之間的枚舉值都可以隨便刪減增添變化了
對(duì)于默認(rèn)值可以設(shè)置為NONE, 這也算是對(duì)枚舉值的一種初始化
TOTAL值還可以用于遍歷
for(int i=0;i<TOTAL;i++)
可以遍歷所有的枚舉值
設(shè)置默認(rèn)值
typeof enum{
TypeA_NONE = -1,
TypeA_Val1,
TypeA_ValC,
TypeA_TOTAL
TypeA_DEFAULT = TypeA_Val1
} TypeA;
TypeA a = TypeA_DEFAULT;
當(dāng)有默認(rèn)指向時(shí), 使用默認(rèn)值來代替具體的枚舉, 也是可以靈活的來改變參數(shù), 也節(jié)省出一個(gè)變量命名