查询类型的对齐要求。

语法

alignof( 类型标识 )

返回 std::size_t 类型的值。

解释

返回由类型标识所指示的类型的任何实例所要求的对齐字节数,该类型可以为完整类型、数组类型或者引用类型。

若类型为引用类型,则运算符返回被引用类型的对齐;若类型为数组类型,则返回元素类型的对齐要求。

关键词

alignof

注解

有关 alignof 的返回值的含义和性质,参见对齐

示例

运行此代码

  1. #include <iostream>
  2.  
  3. struct Foo {
  4. int i;
  5. float f;
  6. char c;
  7. };
  8.  
  9. struct Empty {};
  10.  
  11. struct alignas(64) Empty64 {};
  12.  
  13. int main()
  14. {
  15. std::cout << "Alignment of" "\n"
  16. "- char : " << alignof(char) << "\n"
  17. "- pointer : " << alignof(int*) << "\n"
  18. "- class Foo : " << alignof(Foo) << "\n"
  19. "- empty class : " << alignof(Empty) << "\n"
  20. "- alignas(64) Empty: " << alignof(Empty64) << "\n";
  21. }

可能的输出:

  1. Alignment of
  2. - char : 1
  3. - pointer : 8
  4. - class Foo : 4
  5. - empty class : 1
  6. - alignas(64) Empty: 64