struct A {
public:
char a[12];
int b;
short c;
__int64 d;
char e;
char f;
A()
{
memset(this, 0, sizeof(A));
//a = 'a';
b = 2;
c = 3;
d = 4;
e = 'b';
f = 'c';
}
};
以上结果对应的内存数据:
总结:以最大长度成员的size为准,相邻的成员长度和不大于最大成员的size时,不会补位;当相邻成员和超过最大成员的size时,前一个成员会进行补位,补位之后的的大小是最大成员size的整数倍。