参考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值

  

最新文章

  1. JQuery Ajax调用asp.net后台方法
  2. ubuntu下Pycharm安装及配置
  3. ASP.NET MVC controller 之间传JS值
  4. lucene源码地址
  5. Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
  6. make[1]: *** [pcrecpp.lo] 错误 1
  7. JS常用的设计模式(10)——模版方法模式
  8. Immutable.js尝试(node.js勿入)
  9. 学习笔记_Java_day13_三层的HelloWorld程序(15)--不错,整体三层架构学习
  10. iOS 2x 3x
  11. oracle_一次移动数据库dbf文件的操作
  12. iOS中4种判断网络请求的方式(系统状态栏、AFNetworking、Reachability、自定义)
  13. seacms6.5 注入漏洞1
  14. Linux下时钟框架实践---一款芯片的时钟树配置
  15. ubuntu系统安装mysql登陆提示 解决Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题
  16. yii2 配合bootstrap添加一个气泡
  17. Pandas排列和随机采样
  18. Power BI 与 Azure Analysis Services 的数据关联:4、Power BI 连接到Azure Analysis Services 并展示
  19. 排序算法--冒泡排序(Bubble Sort)_C#程序实现
  20. 检测硬件RDMA卡是否存在

热门文章

  1. shell截取指定字符串之间的内容
  2. PHP错误日志和内存查看(转)
  3. 【TLV】非递归TLV数据解析
  4. 右键菜单添加包含ICON图片的快捷打开方式
  5. mysql 外键和子查询,视图
  6. MATLAB实现Brovey图像融合
  7. vue修改框架样式/deep/
  8. es6去重
  9. Request、Response
  10. onvif 框架代码生成