一.什麼是共用體?
在進行某些算法的C語言編程的時候,需要使幾種不同類型的變量存放到同一段內存單元中。也就是使用覆蓋技術,幾個變量互相覆蓋。這種幾個不同的變量共同佔用一段內存的結構,在C語言中,被稱作“共用體”類型結構,簡稱共用體。注:在某些書籍中可能稱之爲“聯合體”,但是“共用體”更能反映該類型在內存的特點。(摘自百度百科)
二.定義共用體類型變量
eg:
union Test //Test爲共用體名
{
int a; //a,b,c存儲在同一段儲存單元中
float b;
char c;
}m,n;
或者:
union Test //Test爲共用體名
{
int a; //a,b,c存儲在同一段儲存單元中
float b;
char c;
};
union Test m,n;
(定義方式類似結構體。)
三.共用體類型數據的特點:
①共用體變量中只能存放一個值:同一個內存段可以用來存放幾種不同類型的成員,但每一次只能存放其中一個,不能同時存放。(共用體類型所佔的內存長度等於最長的成員的長度)
②可以對共用體進行初始化,但初始化表中只能有一個變量。
③共用體中起作用的成員是最後一次被賦值的成員,在對共用體中的其中一個成員的賦值後,原有變量儲存單元中的值就取代。