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