码迷,mamicode.com
首页 > 编程语言 > 详细

c++字节对齐

时间:2017-05-09 14:50:47      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:images   nbsp   http   sizeof   对齐   数组   存储   detail   理解   

参考URL: http://blog.csdn.net/hairetz/article/details/4084088

0 字节对齐的意义按我的理解是便于cpu一次取完所有数据, 提高代码的执行效

1 字节对齐的规则

(1) 结构体第一个成员的offset作为0, 以后每个成员存储的起始位置要从该成员大小(原始类型), 或者成员的子成员大小(数组), 或者成员中最大子成员大小的整数倍地址开始存储

(2) 结构体的总大小,也就是sizeof的结果, 必须是其内部最大成员的整数倍.不足的要补齐

 

以下是在win7 x86_64 vs2015 x64模式编译模式下的内存分布

变量b

技术分享

变量a

技术分享

2 vs2015等编译器默认是#pragma pack(8),所以测试我们的规则会正常;gcc默认是#pragma pack(4),并且gcc只支持1,2,4对齐。套用以上规则里计算的对齐值是不能大于#pragma pack指定的n值

  

c++字节对齐

标签:images   nbsp   http   sizeof   对齐   数组   存储   detail   理解   

原文地址:http://www.cnblogs.com/talenth/p/6830329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!