问答详情
源自:4-1 Linux C公用体
共用体所占内存大小问题
#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 是不是共用体内存大小也是要对齐的?
提问者:一起沉默2626
2017-05-08 12:39
个回答
慕粉1474816063
2017-05-08 16:25:31
已采纳
c++有一个对齐机制,申请的内存应该是某一数的整数倍,在这里是4,所以只能是8
1
放弃治疗0
2017-05-08 16:54:38
是,这点和结构体类似。
1