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