已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内存对齐在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。我们还是先来看一段简单的程序:程序一1 #include 2 using namespace std;3 4 struct X15 6 int i;/4个字节7 char c1;/1个字节8 char c2;/1个字节9 ;10 11 struct X212 13 char c1;/1个字节14 int i;/4个字节15 char c2;/1个字节16 ;17 18 struct X319 20 char c1;/1个字节21 char c2;/1个字节22 int i;/4个字节23 ;24 int main()25 26 coutlong sizeof(long)n;27 coutfloat sizeof(float)n;28 coutint sizeof(int)n;29 coutchar sizeof(char)n;30 31 X1 x1;32 X2 x2;33 X3 x3;34 coutx1 的大小 sizeof(x1)n;35 coutx2 的大小 sizeof(x2)n;36 coutx3 的大小 sizeof(x3)n;37 return 0;38 这段程序的功能很简单,就是定义了三个结构X1,X2,X3,这三个结构的主要区别就是内存数据摆放的顺序,其他都是一样的,另外程序输入了几种基本类型所占用的字节数,以及我们这里的三个结构所占用的字节数。这段程序的运行结果为:1 long 42 float 43 int 44 char 15 x1 的大小 86 x2 的大小 127 x3 的大小 8结果的前面四行没有什么问题,但是我们在最后三行就可以看到三个结构占用的空间大小不一样,造成这个原因就是内部数据的摆放顺序,怎么会这样呢?下面就是我们需要讲的内存对齐了。内存是一个连续的块,我们可以用下面的图来表示, 它是以4个字节对一个对齐单位的:图一让我们看看三个结构在内存中的布局:首先是 X1,如下图所示X1 中第一个是 Int类型,它占有4字节,所以前面4格就是满了,然后第二个是char类型,这中类型只占一个字节,所以它占有了第二个4字节组块中的第一格,第三个也是char类型,所以它也占用一个字节,它就排在了第二个组块的第二格,因为它们加在一起大小也不超过一个块,所以他们三个变量在内存中的结构就是这样的,因为有内存分块对齐,所以最后出来的结果是8,而不是6,因为后面两个格子其实也算是被用了。再次看看X2,如图所示X2中第一个类型是Char类型,它占用一个字节,所以它首先排在第一组块的第一个格子里面,第二个是Int类型,它占用4个字节,第一组块已经用掉一格,还剩3格,肯定是无法放下第二Int类型的,因为要考虑到对齐,所以不得不把它放到第二个组块,第三个类型是Char类型,跟第一个类似。所因为有内存分块对齐,我们的内存就不是8个格子了,而是12个了。再看看X
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3章《铁金属材料》单元检测题 高中化学人教版(2019)必修第一册
- 2026年种子系统版种子仓库管理知识试题
- 2026年江西单招护理专业会阴擦洗操作规范模拟考核题
- 2026年中国航空工业应聘笔试航空制造技术题目及答案
- 2026年厦门市外办翻译岗位遴选海洋城市翻译题
- 2026年乡镇干部土地节约集约利用题库
- 2026年科技前沿创新趋势多选题库年度盘点
- 2026年污染防治攻坚战专项考核
- 2026年危化品泄漏应急处置知识测试
- 2026年生活垃圾焚烧发电厂运行岗面试
- 酒店客房维修与保养操作手册(标准版)
- 纺织车间设备维护管理细则
- 2025年全国计算机一级WPSOffice考试模拟试题及答案
- 中国中化2026届人才测评题库
- 聚润达集团考试题目
- 江苏省常州市2026届高三语文一月考作文讲评:“你认为鲁侍萍有什么特点”“弱鸡”
- 无人机基础知识课件教案
- 2025年重庆辅警笔试及答案
- 2025年各高校辅导员考试综合素质测评试题及答案
- 2026-2030年学校十五五德育发展规划(全文19103字 附工作任务总表及各年度计划表)
- 2026年漯河职业技术学院单招职业技能考试必刷测试卷附答案
评论
0/150
提交评论