struct 对齐

Posted noprofessional

tags:

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

  1. 每一个成员的offset必须是sizeof(Type)的整数倍,第一个成员offset一定为0.
  2. 在最后一个成员之后的pad,要使sizeof(struct)是 max(sizeof(Type))的整数倍;

struct{short a;/*2+2*/; int b /*4*/; char c/*1+7*/; double d/*8*/; char e/*1*/,/*7*/} sizeof(struct) = 32;

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

C/C++ struct/class/union内存对齐

转C/C++ struct/class/union内存对齐

struct字节对齐方式...更新中

struct内存对齐1:gcc与VC的差别

Struct 和 Union区别

转一下关于struct字对齐的原因