__align キーワードを使用すると、データ構造の明示的な位置合わせを指定することができます。
キーワードは、集合体型の定義または第 1 レベル変数の宣言において使用するための直交言語拡張です。
指定されたバイト境界は、メンバーの位置合わせではなく、集合体の位置合わせに全体として影響します。
__align 指定子は、別の集合体定義内でネストされた集合体定義に適用することができますが、
集合体またはクラスの個々のエレメントには適用できません。位置合わせ指定は、
パラメーターおよび自動変数に対しては無視されます。
宣言の形式は次のいずれかです。
>>-declarator--__align--(--int_constant--)--identifier--;------><
構造体または共用体の構文:
>>-__align--(--int_constant--)--struct_or_union_specifier--+-----+--{--struct_declaration_list--}--;->< '-tag-'
ここで、
制約および制限事項
__align 指定子は、変数位置合わせのサイズが型位置合わせのサイズより小さい場合は使用することができません。
すべての位置合わせがオブジェクト・ファイル内で表示可能であるとは限りません。
__align 指定子を次の項目に適用することはできません。