整数类型的对齐方式

Cam*_*ite 2 c memory-alignment

我知道结构的大小和对齐方式并不总是一样,但是对整数类型的大小和对齐有什么保证吗?例如,大小和对齐方式是否int始终相同或者它们可能不同?

为了证明我的问题,这个断言会不会失败?

int main() {
    assert(_Alignof(int) == sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)

nwe*_*hof 6

整数类型的对齐和大小可以不同.例如在GCC x86 32位上:

_Alignof(long long) == 4
  sizeof(long long) == 8
Run Code Online (Sandbox Code Playgroud)