#pragma align integer (variable[, variable] )
整列プラグマで指定した変数のメモリーはデフォルト値によらず、すべて integer バイト境界に揃えられます。ただし、次の制限があります。
integer は、1 ~ 128 の範囲にある 2 のべき乗、つまり、1、2、4、8、16、32、64、128 のいずれかでなければいけません。
variable には大域または静的な変数を指定します。自動変数は指定できません。
指定された境界がデフォルトより小さい場合は、デフォルトが優先します。
プラグマ行は、その行に指定される変数の宣言よりも先になければいけません。先にないと無視されてしまいます。
プラグマ行で記述されているが、そのあとで宣言されていない変数は無視されます。たとえば、次のようにします。
#pragma align 64 (aninteger, astring, astruct) int aninteger; static char astring[256]; struct astruct{int a; char *b;}; |