源:http://zh.cppreference.com/w/cpp/language/alignas
指定的种类或对象的对齐要求,.
指定的种类或对象的对齐要求,.
语法
alignas( expression ) | (C++11 起) | ||||||||
alignas( type-id ) | (C++11 起) | ||||||||
解释
alignas说明变量或类的数据成员的声明,或者它可以被应用到一个类/结构/联合或枚举的定义.
alignas(expression)的形式,当使用
expression是一个不可分割的常量表达式的计算结果为正值,声明的实体将有对齐要求设置的
expression准确的结果,除非它会削弱类型的自然对齐要求的。
当使用的形式
alignas(type),是完全等同于
alignas(alignof(type)),也就是声明的实体的对齐要求,将是平等的对齐要求,
type
注释
alignas(0)有没有效果.
当多个
alignas说明适用于相同的变量或类的,最严格的人用了
C语言定义
alignas作为一个宏在头
<stdalign.h>,但在C + +中,这是一个关键字,并在头
<stdalign.h>和
<cstdalign>没有定义这样的宏。不必说什么,否则情况更糟,不过,他们定义宏不变
__alignas_is_defined.
关键字
为例
// every object of type sse_t will be aligned to 16-byte boundary struct alignas(16) sse_t { float sse_data[4]; }; // the array "cacheline" will be aligned to 128-byte boundary char alignas(128) cacheline[128];