??? 枚舉符也可以用整型的常量表達(dá)式進(jìn)行初始化。如果某個(gè)枚舉中所有枚舉值均非負(fù),該枚舉的表示范圍就是[0:2^k-1],其中2^k能使所有枚舉符位于此范圍內(nèi)的最小的2的冪。如果存在負(fù)的枚舉符值,該枚舉的表示范圍就是[-2^k,2^k-1]。
??? 一個(gè)整型值可以顯示的轉(zhuǎn)換成一個(gè)枚舉值,除非這種轉(zhuǎn)換的結(jié)果位于枚舉的表示范圍之內(nèi),否則就是無(wú)定義的。舉例如下:
enum flag?{x=1,y=2,z=4,e=8};? //表示范圍為0:15
flag f1=5;??//類型錯(cuò),5不是flag類型
flag f1=flag(5);? //可以,flag(5)是flag類型且在flag的表示范圍內(nèi)
flag?f1=flag(99);? //無(wú)定義,99不在flag的表示范圍內(nèi)
??? 一個(gè)枚舉的sizeof就是某個(gè)能夠容納其范圍的整型的sizeof,而且不會(huì)大于sizeof(int)。
???
posted on 2007-01-10 08:52
探丫頭 閱讀(1150)
評(píng)論(4) 編輯 收藏 引用 所屬分類:
編程語(yǔ)言——C++