天天看點

8.4 共用體和枚舉類型

一、共用體

(1)定義

一般形式

union 共用體名

{成員表列

}變量表列;

結構體變量所占用的記憶體長度等于最長的成員的長度

(2)共用體的特點

①同一個記憶體段可以用來存放幾種不同類型的成員,但在每一瞬間隻能存放其中一個成員而不是幾個

②可以對共用體變量初始化,但初始化表中隻能有一個常量

③共用體變量中起作用的成員是最後一次被指派的成員

④共用體變量的位址和它的各成員的位址都是同一位址

⑤不能對共用體變量名指派,也不能企圖引用變量名來得到一個值

⑥以前的C規定不能把共用體變量作為函數參數,但可以使用指向共用體變量的指針作函數參數

⑦共用體類型可以出現在結構體類型定義中,也可以定義共用體數組

二、枚舉

(1)定義

一般形式

enum[枚舉名] {枚舉元素清單};

其中枚舉名應遵循辨別符的命名規則

注意:

①C編譯對枚舉類型的枚舉元素按常量處理

②每一個枚舉元素都代表一個整數,C語言編譯按定義時的順序預設它們的值為0,1,2,3,4...