整数类型的对齐

Alignment of integer types

我知道结构的大小和对齐方式并不总是相同,但是否对整数类型的大小和对齐方式有任何保证?例如,int 的大小和对齐方式是始终相同还是可能不同?

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

int main() {
    assert(_Alignof(int) == sizeof(int));
}

整数类型的对齐方式和大小可以不同。例如 GCC x86 32-bit:

_Alignof(long long) == 4
  sizeof(long long) == 8