alignof 运算符(C++11 起)
来自cppreference.com
查询类型的对齐要求。
语法
alignof( 类型标识 )
|
|||||||||
返回 std::size_t 类型的值。
解释
返回由类型标识所指示的类型的任何实例所要求的对齐字节数,该类型可以为完整类型、数组类型或者引用类型。
若类型为引用类型,则运算符返回被引用类型的对齐;若类型为数组类型,则返回元素类型的对齐要求。
关键词
注解
有关 alignof
的返回值的含义和性质,参见对齐。
示例
运行此代码
#include <iostream> struct Foo { int i; float f; char c; }; struct Empty {}; struct alignas(64) Empty64 {}; int main() { std::cout << "Alignment of" "\n" "- char : " << alignof(char) << "\n" "- pointer : " << alignof(int*) << "\n" "- class Foo : " << alignof(Foo) << "\n" "- empty class : " << alignof(Empty) << "\n" "- alignas(64) Empty: " << alignof(Empty64) << "\n"; }
可能的输出:
Alignment of - char : 1 - pointer : 8 - class Foo : 4 - empty class : 1 - alignas(64) Empty: 64
参阅
对齐要求 | 限制对象所能分配于其中的地址 |
alignas 说明符 | 指定该变量的存储应该按指定量对齐 (C++11) |
(C++11) |
获取类型的对齐要求 (类模板) |