结构体内存对齐计算

结构体中包含结构体的运算

关键提示

== 关键提示==

struct EE
{
int a; //长度4 < 8 按4对齐;偏移量为0;存放位置区间[0,3]
char b; //长度1 < 8 按1对齐;偏移量为4;存放位置区间[4]
short c; //长度2 < 8 按2对齐;偏移量由5提升到6;存放位置区间[6,7]
//结构体内部最大元素为int,由于偏移量为8刚好是4的整数倍,所以从8开始存放接下来的>struct FF
{
int a1; //长度4 < 8 按4对齐;偏移量为8;存放位置区间[8,11]
char b1; //长度1 < 8 按1对齐;偏移量为12;存放位置区间[12]
short c1; //长度2 < 8 按2对齐;偏移量为13,提升到2的倍数14;存放位置区间[14,15]
char d1; //长度1 < 8 按1对齐;偏移量为16;存放位置区间[16]
};
//整体对齐系数 = min((max(int,short,char), 8) = 4,将内存大小由17补齐到4的整数倍20
char d; //长度1 < 8 按1对齐;偏移量为21;存放位置区间[21]
//整体对齐系数 = min((max(int,short,char), 8) = 4,将内存大小由21补齐到4的整数倍24
};


作者:LiuYongJi
来源:CSDN
原文:https://mp.csdn.net/mdeditor/83303599
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值