#include <iostream>
using namespace std;
union un
{
int a[7];
double b;
char c[10];
int d[3];
};
void main()
{
cout<<sizeof(un)<<endl;
}
輸出為32。
union(共用體)的各個(gè)成員是以同一個(gè)地址開始存放的,每一個(gè)時(shí)刻只可以存儲(chǔ)一個(gè)成員,這樣就要求它在分配內(nèi)存單元時(shí)候要滿足兩點(diǎn):?
1.一般而言,共用體類型實(shí)際占用存儲(chǔ)空間為其最長的成員所占的存儲(chǔ)空間;?
2.若是該最長的存儲(chǔ)空間對(duì)其他成員的元類型(如果是數(shù)組,取其類型的數(shù)據(jù)長度,例int a[5]為4)不滿足整除關(guān)系,該最大空間自動(dòng)延伸;?
?
union un { int a[7]; //元長度4 double b; //元長度8 char c[10]; //元長度1 int d[3]; //元長度4 };
?
聯(lián)合體大小要滿足最大元長度的整數(shù)倍。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
