内存对齐的原则

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存对齐的原则相关的知识,希望对你有一定的参考价值。

参考技术A 1、数据成员对齐规则:结构(struct)或union的数据成员,第一个数据的成员,放在offset为0 的地方,以后每个数据成员存储的起始位置,要从该成员大小成员的子成员大小(只要该成员有子成员,数组、结构体等)的整数倍开始。

如:int 为4字节,则要从4的整数倍地址开始存储。min(当前开始的位置m n)m = 9,n = 4,则9 - 10 - 11 - 12

2、结构体作为成员:如果一个结构里,有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。

如:struct A里存有 struct B ,B里有char、int 、double等元素,那么B应该从8的整数倍开始存储。

3、结构体的总大小,也就是sizeOf的结果,必须是其内部成员的整数倍,不足的要补齐

以上是关于内存对齐的原则的主要内容,如果未能解决你的问题,请参考以下文章

结构体内存对齐

字节对齐原则

结构体内存对齐

结构体大小的计算以及内存对其原则和修改默认对齐数

Visual Studio2008 C++结构体成员需要内存对齐吗?

C struct的内存对齐