1. 何为内存对齐,内存补齐
-
内存对齐:
第一个数据成员放在offset为0的地方,对齐按照
对齐系数
和
自身所占用的字节数
中,两者比较小的那个进行对齐。
-
内存补齐
在struct或者union数据成员完成各自
对齐之后
,struct或者union本身也要对齐,对齐
按照对齐系数
和
struct或者union中最大数据成员长度
中比较小的那个进行。先局部成员对齐,然后再全局对齐。
2.内存对齐优点
性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。内存是一组一组读取的(4个一组或8个一组读取),为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问(数据存放在同一个组只需要一次读取,如果分散在不同的组,需要两次读取)。
3.例题解答
struct One{
double d;char c;int i;}

发布评论