676-为什么要进行结构体内存对齐
为什么要进行结构体内存对齐?
1、平台移植型好
不是所有的硬件平台都能访问任意地址上的数据;某些硬件平台只能只在某些地址访问某些特定类型的数据,否则抛出硬件异常,及遇到未对齐的边界直接就不进行读取数据了。
2、cpu处理效率高
从上图可以看出,对应两种存储方式,若CPU的读取粒度为4字节,
那么对于一个int 类型,若是按照内存对齐来存储,处理器只需要访存一次就可以读取完4个字节,
若没有按照内存对其来读取,如上图所示,就需要访问内存两次才能读取出一个完整的int 类型变量
具体过程为,第一次拿出 4个字节,丢弃掉第一个字节,第二次拿出4个字节,丢弃最后的三个字节,然后拼凑出一个完整的 int 类型的数据。
其实结构体内存对齐是拿空间换取时间的做法。提高效率!!!
还没有评论,来说两句吧...