共用體表示幾個變量共用一個內(nèi)存位置,在不同的時間保存不同的數(shù)據(jù)類型和不同長度的變量。在union中,所有的共用體成員共用一個空間,并且同一時間只能儲存其中一個成員變量的值。下例表示聲明一個共用體foo:
union foo{
int i;
char c;
double k;
};
再用已聲明的共用體可定義共用體變量。
例如用上面說明的共用體定義一個名為bar的共用體變量, 可寫成: union foo bar;在共用體變量bar中, 整型變量i和字符變量c共用同一內(nèi)存位置。
當(dāng)一個共用體被聲明時, 編譯程序自動地產(chǎn)生一個變量, 其長度為聯(lián)合中最大的變量長度。以上例而言,最大長度是double數(shù)據(jù)類型,所以foo的內(nèi)存空間就是double型的長度。