#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;};