__alignof运算符

Microsoft 专用

返回值的类型, size_t,是类型的对齐要求。

__alignof( 
   type  
)

备注

例如:

表达式

__alignof (字符)

1

__alignof (mutual)

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));

有关修改的对齐方式的更多信息,请参见:

请参见

参考

使用一元运算符的表达式

C++关键字