共用體所占內(nèi)存大小問(wèn)題
#include
union data{ ? ?int a; ? ?char b; ? ?char c[5]; ? ?int d; }; int main() { ? ?union data dd = {10}; ? ?dd.b = 'a'; ? ?printf("___SIZE____ %lu\n", sizeof(dd)); } //這里我輸出共用體的大小是8而不是5 是不是共用體內(nèi)存大小也是要對(duì)齊的?#include
union data{ ? ?int a; ? ?char b; ? ?char c[5]; ? ?int d; }; int main() { ? ?union data dd = {10}; ? ?dd.b = 'a'; ? ?printf("___SIZE____ %lu\n", sizeof(dd)); } //這里我輸出共用體的大小是8而不是5 是不是共用體內(nèi)存大小也是要對(duì)齊的?2017-05-08
舉報(bào)
2017-05-08
c++有一個(gè)對(duì)齊機(jī)制,申請(qǐng)的內(nèi)存應(yīng)該是某一數(shù)的整數(shù)倍,在這里是4,所以只能是8
2017-05-08
是,這點(diǎn)和結(jié)構(gòu)體類似。