__alignof 演算子

Microsoft 固有の仕様 →

値を型のアライメント要件である型の size_t 返します。

__alignof( 
   type  
)

解説

次に例を示します。

__alignof (文字)

1

__alignof (Short)

2

__alignof (int)

4

__alignof (__int64)

8

__alignof (浮動)

4

__alignof (Double)

8

__alignof (*)

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++ のキーワード