1.什么是字节对齐
现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序一个接一个地存放,这就是对齐。
简单来说,就是结构体在计算sizeof的时候,不能简单的把里面的数据类型的大小加起来,还要考虑很多。
2,为什么字节对齐
假如我的结构体中有两个变量 char a,int j
如果没有字节对齐
| a | j | j | j | j |
每次cpu读取4个字节
第一次读取
| a | j | j | j |
想要知道 a 的值,但是这次读了四个字节,就要把后面三个属于 j 的字节去掉
第二次读取

本文介绍了C++中的字节对齐概念,解释了为何需要进行字节对齐,以及内存对齐的规则。通过实例展示了如何计算结构体的大小,并探讨了嵌套结构体的对齐方式。通过对齐,可以提高CPU访问内存的效率。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



