Share via


__alignof 運算子

Microsoft 專有的

傳回型別的值 size_t,也就是型別對齊需求。

__alignof( 
   type  
)

備註

例如:

運算式

__alignof (字元)

1

__alignof (簡短)

2

__alignof (int)

4

__alignof (__int64)

8

__alignof (浮點數)

4

__alignof (雙重)

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會為您自己的記憶體配置常式的其中一個參數。 例如,給定下列定義結構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));

如需有關如何修改對齊方式的詳細資訊,請參閱:

請參閱

參考

一元 (unary) 運算子的運算式

C + + 關鍵字