整数类型的对齐

时间:2018-09-01 16:56:40

标签: c memory-alignment

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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