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