您的位置:首页 > 其它

结构体有字节对齐和字节补齐问题

2013-03-14 22:05 381 查看
关于结构体有一个字节对齐和字节补齐的问题
对齐原则是:分配空间要是该类型数据大小的倍数即为有char为1的倍数,有short为2的倍数,
有int为4的倍数,有double为8的倍数(关于int和double一般都是4的倍数)
补齐原则是:整个结构体变量的长度补成这里面最大的那个成员大小的倍数,如果大小超过4
就按4的倍数
所以你这个结构的大小具体要这样算

C/C++ code

?
a是个整形4个字节没啥说的,继续到b是个字符型1个字节4是1的倍数所以不用使用对齐原则此时结构体大小为5,再到c短整型2个字节5不是2的倍数所以要对齐一下直接到6再加上c的大小此时结构体大小为8,再到d字符型1个字节8是1的倍数所以不用对齐直接加上此时结构体大小为9,最后因为9不是a的大小倍数要使用补齐原则不上3为12也就是最终结构体的大小
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: