所以假设我有一个看起来像这样的结构(在现实世界中很常见,事实证明):
struct foo {
char[24] bar;
uint32_t fnord;
uint32_t quux;
}__attribute__((aligned(4));
的步幅bar
是多少,也就是说,什么是&bar[1] - &bar[0]
,因为它在struct foo
?这对 有影响sizeof(foo)
,我很确定我想成为 32 岁,并且我还希望对 and 进行快速对齐的操作foo.fnord
,foo.quux
否则它一开始就不会对齐。