考虑以下c++结构声明:
struct SFoo { int A = 200; }; struct SBar { SFoo Foo = SFoo(); SBar* Bar = this; };
offsetof(SBar, Bar) == 8
sizeof(SFoo) == 4
offsetof(SBar, Bar) == 4
fykwrbwg1#
Bar是一个64位的指针,因此需要对齐到一个8字节的地址。它是隐式填充的。另外,您可以使用alignof()检查对齐要求。
alignof()
1条答案
按热度按时间fykwrbwg1#
Bar是一个64位的指针,因此需要对齐到一个8字节的地址。它是隐式填充的。另外,您可以使用
alignof()
检查对齐要求。