共用體類型也是用來描述類型不相同的數據,但與結構體類型不同,共用體數據成員存儲時采用覆蓋技術,共享(部分)存儲空間。在結構體中增加共用體類型成員,可使結構體中產生動態成員,相當于PASCAl,語言的變體記錄。共用體類型在有的書中亦譯為聯合體類型。
共用體類型的定義
共用體類型定義用關鍵字union標識,形式為:
union標識符
{成員表};
標識符給出共用體名,是共用體類型名的主體,定義的共用體類型由“union標識符”標識。例如,定義一個共用體類型,要求包含一個整型成員,一個字符型成員和一個單精度型成員:
union icf
{int i;
char c;
float f;
};
共用體變量的定義
共用體變量的定義和結構體變量的定義類似,也有三種方法。同樣提倡使用第一種方式來定義共用體變量,發布。
(1)先定義共用體類型,再定義共用體變量:
①union共用體名
{成員表};
②union共用體名變量表;
(2)定義共用體類型的同時定義共用體變量:
union共用體名
{成員表}變量表;
(3)直接定義共用體變量:
union{成員表}變量表;
請讀者給出共用體變量定義的實例。
對于共用體類型數據,占有的存儲空間等于占有存儲空間最的共用體成員所占空間。