内存对齐问题
来源:互联网 发布:淘宝高级搜索在哪里 编辑:程序博客网 时间:2024/06/02 00:27
基本上每次笔试都有这种题,看了博客,感觉都写的乱七八糟的。
比如32位吧,对齐的内存为4字节,
这就意味着总线一次只能读取四个字节的数据,
比如有个内存abcd efgh hijk lmno
每个字母代表一个字节,
定义一个struct
struct S{
char x;
int y;
short z;
};
sizeof(S)==12;
内存占用分布是x占了a,y占了从h到k,z占lm。
为什么呢,因为总线一次只能从4的整数倍地址开始寻址,一次读取4个字节。
如果是x占了a,y占了从b到e,那么cpu想要得到y的值需要读取内存两次,分别读取abcd和efgh,然后将bcd和e拼凑到一起变成y的值。
IO是非常费时间的,所以一般会有对齐,这样一来,读取b的值只需要读取一次就行。
再看。
struct T{
char xx;
char x;
int y;
short z;
};
同样sizeof(T)==12;为什么。
因为char占一个字节,所以xx和x分别占用了a和b内存。
而每次读取xx或者x的时候都只需要一次读取abcd内存的值,然后选择a或者b就行。
0 0
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 关于内存对齐问题
- 内存对齐问题
- 内存对齐问题
- 内存对齐问题 zz
- 内存对齐问题分析
- 内存对齐的问题
- Windows内存对齐问题
- 内存对齐的问题
- 内存对齐问题
- 内存对齐问题
- 一个ubuntu phper的自我修养(lamp)
- ExtJs教程----利用 Sencha cmd 生成应用程序
- android SharedPreferences的一般用法(存取清删)
- 2016.9.12
- 不能安装vm tools ,虚拟机打开了,一直是灰色的
- 内存对齐问题
- 尚硅谷java学习笔记——2.基本语法
- 第六章 信号量集
- real-time compressive tracking 所感
- javascript 第一日(基本概念)
- 子集生成(三种办法)
- VC操作word和excel文件,查询与读写[依赖office环境]
- TextView的基本属性
- 商业化IM 客户端设计---Message模型