stdalign.h
C標準函式庫 |
---|
一般 |
雜項 |
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 <stdalign.h>
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 <stdalign.h>」。