次の方法で共有


__alignof 演算子

Microsoft 固有の仕様 →

型の配置要件である size_t 型の値を返します。

__alignof( 
   type  
)

解説

次に例を示します。

__alignof( char )

1

__alignof( short )

2

__alignof( int )

4

__alignof( __int64 )

8

__alignof( float )

4

__alignof( double )

8

__alignof( char* )

4

__alignof 値は、基本型の sizeof 値と同じです。 ただし、次の例を検討します。

typedef struct { int a; double b; } S;
// __alignof(S) == 8

この場合、__alignof 値は、構造体内の最大要素の配置要件です。

同様に、

typedef __declspec(align(32)) struct { int a; } S;

__alignof(S) と 32 が等価です。

__alignof の使用方法の 1 つは、独自のメモリ割り当てルーチンの 1 つへのパラメーターとしての使用です。 たとえば、次の定義済みの構造体 S を指定して、aligned_malloc という名前のメモリ割り当てルーチンを呼び出し、特定の配置境界にメモリを割り当てることができます。

typedef __declspec(align(32)) struct { int a; double b; } S;
int n = 50; // array size
S* p = (S*)aligned_malloc(n * sizeof(S), __alignof(S));

配置の変更の詳細については、次を参照してください。

参照

関連項目

単項演算子を含む式

C++ キーワード