有時想用同一段內存單元存放不同類型的變量,在C語言中提供了一種使幾個不同類型的變量共享同一段內存的結構,稱爲“共用體”類型的結構。
定義共用體類型變量的一般形式爲:
union 共用體名 { 成員表列 }變量表列;
例如:
union Data { int i; char ch; float f; } a, b, c;
也可以將類型聲明與變量定義分開:
union Data { int i; char ch; float f; }; union Data a, b, c;
下面介紹共用體類型的一些特點:
1.共用體變量所佔的內存長度等於最長的成員的長度。
2.不能引用共用體變量,只能引用共用體變量的成員。
3.在共用體變量中只能存放一個值。
4.對共用體變量初始化方式有以下兩種
union Data a={16}; //對第一個成員i初始化
union Data b={.ch='L'}; //對指定的一個成員ch初始化
5.共用體變量中起作用的成員是最後一次被賦值的成員。
6.不能對共用體變量名賦值,也不能企圖引用變量名來得到一個值。但是允許同類型的共同體變量互相賦值。