【发布时间】:2020-09-03 08:17:32
【问题描述】:
我最近了解到空类的大小是 1 而不是零。为什么它没有字节对齐,其中 在 32 位环境下它的大小应该是 4?下一个对象的地址是什么?
【问题讨论】:
-
为什么你认为它应该有对齐 4?
-
@bolov -- 因为在 32 位环境中,几乎所有东西都可以。
-
@PeteBecker 不,不是godbolt.org/z/CkQmMc
-
@PeteBecker 我不明白你的意思。在 x86-32 中,通常 4 字节或更大的对象具有 4 字节对齐,而较小的对象具有与其大小相等的对齐。所以这就是为什么我问为什么 OP 认为大小为 1 的对象应该对齐为 4。
-
@PeteBecker 我没有敌意。我的问题的重点是了解 OP 有哪些假设/误解,以便我们能够解决它们。
标签: c++ memory alignment sizeof empty-class