【发布时间】:2015-07-15 05:53:29
【问题描述】:
alignof(N) == sizeof(N) 其中 N 是整数类型吗?
我要求同时使用 C 和 C++,希望这不是问题。
【问题讨论】:
-
alignof(N)必然会平分sizeof(N),但它们不必相等。
标签: c++ c memory-alignment
alignof(N) == sizeof(N) 其中 N 是整数类型吗?
我要求同时使用 C 和 C++,希望这不是问题。
【问题讨论】:
alignof(N) 必然会平分sizeof(N),但它们不必相等。
标签: c++ c memory-alignment
这是特定于机器的。在 32 位机器上,alignof(int64_t) 很容易为 4。同样,现在普遍存在的假设不会持续太久。
【讨论】:
alignof(int64_t)是1!
在 C 中不一定。至少我在草稿中找不到任何东西 C99 或草案 C11 标准,要求它们相同。一个实现 理论上可以在其整数类型中具有填充位,并且它是 很容易想象一些对齐要求小于尺寸的机器架构。考虑一个只需要四字节对齐的系统上的 64 位整数。
【讨论】:
sizeof 和alignof 中。