中易网

c++ union的大小问题

答案:2  悬赏:60  
解决时间 2021-01-12 09:17
  • 提问者网友:战魂
  • 2021-01-12 03:54
c++ union的大小问题
最佳答案
  • 二级知识专家网友:你哪知我潦倒为你
  • 2021-01-12 04:38
Data3中a的大小是9*1B,b的大小是1*4B,其中最大的那个是其大小,即5,但需要对齐(后面的b是4字节)因此是4+1+3(对齐部分);
同理,Data3大小是9,对齐后面的double b(8字节),因此是8+1+7(对齐字节)追问4+1+3 ,+1和+3具体是为什么啊? 怎么个对齐方式?追答Data2对齐是为了凑int的整数倍,即4的整数倍。Data3对齐是为了凑double的整数倍,8的整数倍。你可以百度 struct对齐方式
全部回答
  • 1楼网友:患得患失的劫
  • 2021-01-12 05:53
除了取最大元素大小外还有个凑整的规则, 如果大小不足4或8的倍数的话会补齐, 这个和计算机内存管理有关系
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息