内存对齐规则:

默认条件下,内存对齐是以class/struct中最大的那个基本类型为基准的(x倍数)

如果在类的前面有

#pragma pack(n)
min(#pragma pack(n), 最大长度的类型)

结构体的总大小为 有效对齐值 的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。

class C
{
public:short a; long long c;
};
// 有效对齐值:8
class C
{
public:short a;int b;
}; // 有效对齐值:4
class C
{
public:char a;char b;char c;char d;char e;
}; // 有效对齐值:1
class C
{
public:char a;char b;char c;short e;
}; // 有效对齐值:2
#pragma pack(2)
class A
{
public:char a;int  s;
};

内存对齐的原因:

1.平台原因:某些处理器只能在特定地址处取数据

2.硬件原因:如果不对齐,可能要取好几次

c++内存对齐的规则相关推荐

  1. 内存对齐的规则以及作用

    内存对齐能够用一句话来概括: "数据项仅仅能存储在地址是数据项大小的整数倍的内存位置上" 比如int类型占用4个字节.地址仅仅能在0,4.8等位置上. 由一个程序引入话题: //环 ...

  2. 内存对齐的规则以及作用 verygood!的一篇文章!

    原文转自:http://www.cppblog.com/snailcong/archive/2009/03/16/76705.html 首先由一个程序引入话题: //环境:vc6 + windows  ...

  3. 什么是内存对齐?如何计算内存对齐?为什么要内存对齐?

    内存对齐概念: 要了解内存对齐,我们可以先看下面的例子: typedef struct S {int a;double b;char c; }S;typedef struct B {int a;cha ...

  4. 内存对齐是什么?为什么要内存对齐?

    原文: http://blog.csdn.net/liupeng900605/article/details/7530010 首先由一个程序引入话题:  1 //环境:vc6 + windows sp ...

  5. 内存对齐的原理,作用,例子以及一些规划(中英文说明,适用sizeof结构体) ...

    目录   题记  一  内存读取粒度   Memory access granularity   从内存的角度解释内存对齐的原理   队列原理 Alignment fundamentals   Laz ...

  6. 【C语言】自定义类型(结构体、位段、枚举、联合体)与内存对齐

    目录 一.自定义类型种类 1.结构体 2.位段 3.枚举 4.联合体(共同体) 二.结构体 1.结构体的声明 2.结构体变量的定义与初始化 1.定义 2.结构体变量的初始化 3.结构体成员的访问 1. ...

  7. Windows内存体系(6) -- 彻底理解内存对齐

    一.内存为什么要对齐 虽然所有的变量都是保存在特定地址的内存中,但最好还是按照内存对齐的要求来存储.这主要出于两个方面的原因考虑: 平台原因: 不是所有的硬件平台(特别是嵌入式系统中使用的低端处理器) ...

  8. 内存对齐规则及为什么内存对齐

    内存对齐的默认规则: (1)第一个成员在结构体变量偏移量为0的地址处 (2)从第二个成员开始,每个成员都有对齐数,对齐数是其所占字节的整数倍 (3)结构体的总大小为其成员的最大对齐数的整数倍 stru ...

  9. 结构体的内存对齐规则

    1.结构体的内存对齐规则 1.第一个成员在与结构体变量偏移量为0的地址处. 2.其他成员变量都放在对齐数(成员的大小和默认对齐数的较小值)的整数倍的地址处. 对齐数=编译器默认的一个对齐数与该成员大小 ...

最新文章

  1. 内存数据库服务运营之路
  2. 区块链学堂(2):最简单的智能合约
  3. C机顶盒开发实战常用初始化类型:数组、结构、指针
  4. 基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发(项目架构师方向)...
  5. 百度地图手机和电脑不一致_手机能下载北斗星导航吗?比高德地图和百度地图好用吗?...
  6. silverlight的开发暂时是痛苦的
  7. poj 2182 给你每个数前面有几个数比他小让你输出次数的编号
  8. python检测文件的MD5值
  9. 国内企业“数字化转型”案例!
  10. MS发起的PDP上下文激活过程
  11. 如何防止你的爬虫被网管一巴掌拍死
  12. 计算机管理的磁盘管理简单卷,小编教你磁盘管理新建简单卷怎么做
  13. 快手福虎迎春季短视频涨粉活动规则[快手获取商品详情]
  14. 关于CDN以及如何绕过CDN寻找真实ip
  15. 环境艺术设计是计算机,【艺术设计论文】环境艺术设计计算机辅助设计研究(共5097字)...
  16. 颜色模型(color model)
  17. Android 代理 wss,打android包使用wss协议进行websocket连接出错
  18. ldf文件怎么储存到mysql中_如何转移数据库MDF和LDF文件
  19. 【总结】广告点击率预估中的特征选择
  20. Android自定义键盘,仿招商银行

热门文章

  1. 关于资产发现-嗅探法
  2. 三招让你从求职者中脱颖而出(转)
  3. npm ERR! asyncWrite is not a function
  4. EL表达式的内置对象(待梳理)
  5. 《贝叶斯思维:统计建模的Python学习法》——1.8 讨论
  6. javascript正则表达式小结
  7. iOSunicode转中文
  8. Java IO (二),常见的输入/输出流
  9. web开发过程中经常用到的一些公共方法及操作
  10. 多线程put后可能导致get死循环