c++结构体对齐

作者: jekkay 分类: 默认 发布时间: 2020-07-28 22:55

C++结构对齐


已经有一段时间没碰C/C++,有些概念都忘记了,再次记录下:

结构体对齐涉及到三个概念:字段类型本身对齐,系统对齐,结构体有效对齐值。

字段类型对齐

就是按照字段本来大小来对齐,其值等于 sizeof(type)

系统对齐

系统默认对齐值如下,当然也可以自己手动调整:

  • Linux 默认#pragma pack(4)
  • window 默认#pragma pack(8)

结构体有效对齐

这个针对结构体对齐的,取值为Max(sizeof(type)….)

#include <iostream>
using namespace std;

struct st1 {
    int a;
    char b;
    short c;
    double d;
    char e;
};


int main()
{

    cout << "sizeof(st1)=" << sizeof( struct st1) << endl;

   return 0;
}

输出结果为

sizeof(st1)=24

其中结构体对齐值为max(sizeof(type)…)=sizeof(double)=8

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论