对准

该标准保证以下内容:

  • 类型的对齐要求是其大小的除数。例如,一个大小为 16 字节的类可以具有 1,2,4,8 或 16 的对齐,但不能为 32.(如果类的成员大小总共只有 14 个字节,但该类需要具有对齐要求为 8,编译器将插入 2 个填充字节,使类的大小等于 16。)

  • 有符号和无符号版本的整数类型具有相同的对齐要求。

  • 指向 void 的指针与指向 char 的指针具有相同的对齐要求。

  • 类型的 cv 限定版和 cv 非限定版具有相同的对齐要求。

请注意,虽然在 C++ 03 中存在对齐,但直到 C++ 11 才能查询对齐(使用 alignof)和控制对齐(使用 alignas)。