您的位置:首页 > 其它

字节对齐导致的地址计算错误

2017-05-16 11:08 323 查看
在计算如下结构体:

typedef struct {

  s1 a;

  s2 b;

  s3 c;

  s4 d;

  s1 e;

  s2 f;

}root 的地址结果如下:

a,s1,8,364

b,s2,4,372

c,s3,4,376

d,s4,2002,380

e,s1,8,2384

f,s2,4,2392

d变量的长度计算不是预期值,涉及到字节对齐,解决办法:用下一个变量的地址减去相邻变量的地址,而不是用 sizeof获得长度

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: