枚舉類型總結

1.       枚舉類型是用來聲明代表整數常量符號名稱。由此可見,枚舉類型與整數類型有着密切的聯繫,枚舉類型的常量均是int類型

的,它的存在主要是爲了提高程序的可讀性,後面的例子將會看到。通過enum關鍵字就可以創建一個新的“類型”並可以給它指

定具體的值。

     【引申】sizeof(枚舉類型) = sizeof(int) = 4

2.       枚舉類型的聲明:

      enum spectrum {red, green, blue, orange, black, yellow};

      enum spectrum color;

    【解釋】聲明一是借用enum關鍵字,常見新的類型enum spectrum,聲明二則是通過新的類型,創建它的變量,注意變量只能取得聲明一中所列出的幾個值。這方面似乎與結構體的語法十分類似。

3.       枚舉常量:

       枚舉列表中的常量均有默認值,當然也可以用戶自己定義設置,如前面的幾種顏色,其值將分別是0,1,2,3,4,5等幾個整型值。若

出現只是對之間的一個常量賦值,而不對後面的常量賦值,那麼這些後面的常量會通過遞增自動被賦予值。

        在實際的編程中,枚舉常量與整形常量可以混用,當然,整形常量中的一些禁忌同樣應該適用於枚舉常量,比如常量不能自加或者自減。

4.       強制轉換:

        在GNU編譯器下,枚舉類型幾乎與整形類型通用,當然前提是能容納下,比如整形常量就可以直接賦值給枚舉變量。但是VC編譯器下,則需要做強制轉換才行,否則就會出現編譯錯誤

color tree = (color)5;

5.       枚舉常量的取值範圍:

        給定幾個枚舉常量,如何計算出這個枚舉類型的取值範圍呢?

        最大值:距最大值(指的是列舉出的常量最大值)最近的那個2的冪,並減去1

如:

         Enum number { a, b, c = 6, d = 23, e, f};

        上面這個例子中的最大值爲23,而據其最近的2的冪爲3225次冪),則需要5bit就可以容納,因此其最大值應該爲3132-1)。

       負數情況與上面的計算方法類似。

       Enum number { a, b, c = -4, d =2 , e, f};

       這個例子中的最大值爲4-4的絕對值),需要3bit容納,另外加上一個符號位,需要4bit,其取值範圍是:1000-0111,-87.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章