结构体对齐
作者:互联网
结构体对齐规则:
1.结构体变量的首地址一定 是这个结构体变量中 最大的基础(内置)类型的大小的整数倍
2.结构体变量中每一个成员 相对于结构体首地址的偏移 一定是该成员的基础数据类型大小的整数倍
3.结构体变量的总大小 一定是这个结构体变量中 最大的基础类型的大小的整数倍
示例:
如果允许修改默认对齐大小,则规则变更:
默认的内存对齐大小 :vs默认8字节 gcc默认4字节
1.结构体变量的首地址一定 是这个结构体变量中 Min(最大的基础(内置)类型的大小, 默认的对齐规则大小)的整数倍
2.结构体变量中每一个成员 相对于结构体首地址的偏移 一定是该成员的min(基础数据类型大小, 默认的对齐规则大小)的整数倍
3.结构体变量的总大小 一定是这个结构体变量中 Min(最大的基础类型的大小, 默认的对齐规则大小)的整数倍
#pragma pack(1) //修改默认大小
#pragma pack()//恢复默认大小
标签:变量,整数倍,默认,大小,对齐,结构 来源: https://blog.csdn.net/qq_42795061/article/details/121715964