Stdalign.h

stdalign.h是C语言标准2011版新增加的C標準函数庫头文件,为向后兼容目的定义了4个宏:
*alignas 被扩展为_Alignas,_Alignas为C11的关键字。
*alignof 被扩展为_Alignof,_Alignof为C11的关键字。
*__alignas_is_defined 被扩展为1
*__alignof_is_defined 被扩展为1

在C++11中,alignas与alignof是关键字。alignas用于变量定义、数据成员声明、class\struct\union的声明与定义。alignas不可用于基本类型的别名、数组类型等。alignas只能用于更严格(更大对齐值)。alignas的参数可以为数、类型。

alignof的参数为类型。

例子
#include
char alignas(double) buf[30];
char alignas(32) foo[7];

typedef struct { int a; double b; } S;
// alignof(S) == 8 为真

参考文献

  • C语言标准2011版:ISO/IEC 9899:2011第7.15节“Alignment ”。

评论 (0)

  • 还没有评论,来抢沙发吧。