为了账号安全,请及时绑定邮箱和手机立即绑定

共用体所占内存大小问题

#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 是不是共用体内存大小也是要对齐的?

正在回答

2 回答

c++有一个对齐机制,申请的内存应该是某一数的整数倍,在这里是4,所以只能是8

1 回复 有任何疑惑可以回复我~
#1

一起沉默2626 提问者

非常感谢!
2017-05-08 回复 有任何疑惑可以回复我~

是,这点和结构体类似。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118506    人
  • 解答问题       166    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程

共用体所占内存大小问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号