这是因为编译时存在字节对齐的原因,字节对齐主要是为了提高内存数据读取速度。如果你想要让结果等于实际大小,你可以设置字节对齐大小如
#pragma pack(1)
取消设置
#pragma pack()
字节对齐的规则如下:
结构体的大小等于其最大成员的整数倍
结构体成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍。
比如double型成员的首地址相对于结构体首地址的偏移量应该是8的倍数
满足前两条规则后,编译器会在结构体成员之后进行字节填充。
原创 | 2022-12-05 11:18:33 |浏览:1.6万
这是因为编译时存在字节对齐的原因,字节对齐主要是为了提高内存数据读取速度。如果你想要让结果等于实际大小,你可以设置字节对齐大小如
#pragma pack(1)
取消设置
#pragma pack()
字节对齐的规则如下:
结构体的大小等于其最大成员的整数倍
结构体成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍。
比如double型成员的首地址相对于结构体首地址的偏移量应该是8的倍数
满足前两条规则后,编译器会在结构体成员之后进行字节填充。
Copyright 2005-2020 www.kxting.com 版权所有 | 湘ICP备2023022655号
声明: 本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:47085,1089@qq.com