标签: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值
标签:images nbsp http sizeof 对齐 数组 存储 detail 理解
原文地址:http://www.cnblogs.com/talenth/p/6830329.html