Alignof
Version >= C11
查询指定类型的对齐要求。对齐要求是 2 的正整数幂,表示可以分配该类型的两个对象的字节数。在 C 中,对齐要求在 size_t
中测量。
类型名称可能不是不完整类型也不是函数类型。如果使用数组作为类型,则使用数组元素的类型。
通常通过 <stdalign.h>
的便利宏 alignof
访问此运算符。
int main(void)
{
printf("Alignment of char = %zu\n", alignof(char));
printf("Alignment of max_align_t = %zu\n", alignof(max_align_t));
printf("alignof(float[10]) = %zu\n", alignof(float[10]));
printf("alignof(struct{char c; int n;}) = %zu\n",
alignof(struct {char c; int n;}));
}
可能的输出:
Alignment of char = 1
Alignment of max_align_t = 16
alignof(float[10]) = 4
alignof(struct{char c; int n;}) = 4