计算机组成原理——C语言中的边界对齐问题
2019-05-29 21:07
218 查看
边界对齐
例如一个存储字长为32位的机器,现来详述一下依次存入一个int,short,double,char,short类型的数据的过程。假定int ,short,double ,char分别为4,2,8,1字节。那么它们分别占据字、半字、双字、字节。
字地址:4的倍数
半字地址:2的倍数
双字地址:8的倍数
字节地址:任意
那么第一个int就正好占据一个字,第一行就全是int.
short是半字,地址要是2的倍数,随意要占据第二行的前两格。
double是双字,地址要是8的倍数,第三行第一个正好是8,所以占据3,4两行。
char是字节,任意,所以占据double后面的一个格子就行了,这里正好是第五行的第一格。
short是半字,地址要是2的倍数,而char后面的那个地址是17,所以short的首地址不可以正好在char后面,要空一格,从18开始的两个格子。
边界对齐后插入数的位置如图所示:
边界对齐是以空间换时间的。
相关文章推荐
- 计算机组成原理——关于数据对齐存储
- C语言中sizeof用法中关于边界对齐的问题
- C语言结构中的边界对齐问题
- C语言学习-计算机组成原理
- 计算机组成原理的几个问题
- 几个问题--计算机组成原理
- 计算机组成原理画出CPU与主存及3-8译码器之间信号线的连接问题
- 计算机组成原理课本的问题总结
- 一些计算机组成原理的基础问题
- 存储器的寻址问题 分类: 计算机组成原理 2011-04-04 23:24 477人阅读 评论(0) 收藏
- 【艾琪出品】-【计算机组成原理】测试题系列一
- C语言结构体中内存对齐的问题
- 计算机组成原理
- 计算机组成原理往年试题以及答案(tzf!!!)
- C语言中字节对齐问题
- 漫谈计算机组成原理
- 计算机组成原理与汇编语言学习笔记(1)
- 关于边界对齐的问题
- 计算机组成原理 第一章——计算机概要与技术
- C语言 结构体的内存对齐问题与位域