`alignof(N)== sizeof(N)`其中N是整数类型?

时间:2015-07-15 05:53:30

标签: c++ c memory-alignment

alignof(N) == sizeof(N)其中N是整数类型吗?

我要求C和C ++,希望这不是问题。

2 个答案:

答案 0 :(得分:3)

这是机器特定的。在32位计算机上,alignof(int64_t)很容易就是4.太多,现在普遍存在的假设不会持续很长时间。

答案 1 :(得分:1)

在C中不一定。至少我在草案中找不到任何东西 C99或草案C11标准要求它们是相同的。一个实现 理论上它可以在其整数类型中具有填充位,以及它 容易设想一些机器架构,其中对齐要求小于大小。考虑系统上的64位整数,只需要四个字节对齐。