#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(共用體)的各個成員是以同一個地址開始存放的,每一個時刻只可以存儲一個成員,這樣就要求它在分配內存單元時候要滿足兩點:?
1.一般而言,共用體類型實際占用存儲空間為其最長的成員所占的存儲空間;?
2.若是該最長的存儲空間對其他成員的元類型(如果是數組,取其類型的數據長度,例int a[5]為4)不滿足整除關系,該最大空間自動延伸;?
?
union un { int a[7]; //元長度4 double b; //元長度8 char c[10]; //元長度1 int d[3]; //元長度4 };
?
聯合體大小要滿足最大元長度的整數倍。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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