alignas specifier

源: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.

关键字

alignas

为例

// 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];




你可能感兴趣的:(c/c++)