C语言之内存对齐

时间:2020-12-01 01:32:29

我们对自定义数据类型sizeof获取大小时,并不是每个成员的大小进行累加,操作系统为了便于内存访问,往往以成员所占大小最大的成员进行对齐。

比如

struct test
{
char c;
double d;
};

C语言之内存对齐

我们可以通过#pragma pack(n)  n为对齐参数进行调整,直接贴代码

在64位Linux系统运行结果如下

C语言之内存对齐