我理解填充是如何工作的.我知道对齐是什么.对我来说奇怪的是,为什么只有char字段的struct的大小不对齐到4个字节(末尾的填充)?我怀疑这不是规范所保证的,所以编译器不这样做.如果是这种情况,我可以参考这样的规则吗?我最感兴趣的是x86和x86-64架构.
例:
struct foo {
char field1;
char field2;
char field3;
} foo2;
int main(void)
{
printf("sizeof=%lu\n", sizeof foo2);
}
Run Code Online (Sandbox Code Playgroud)
输出: sizeof=3