Sun Studio 12 Update 1: C++ ユーザーズガイド

B.2.1 #pragma align


#pragma align integer(variable [,variable...])

align を使用すると、指定したすべての変数のメモリー境界を integer バイト境界に揃えることができます (デフォルト値より優先されます)。ただし、次の制限があります。


#pragma align 64 (aninteger, astring, astruct)
int aninteger;
static char astring[256];
struct S {int a; char *b;} astruct;

#pragma align を名前空間内で使用するときは、符号化された名前を使用する必要があります。たとえば、次のコード中の、#pragma align 文には何の効果もありません。この問題を解決するには、#pragma align 文の ab、および c を符号化された名前に変更します。


namespace foo {
    #pragma align 8 (a, b, c)
    static char a;
    static char b;
    static char c;
}