©
本文档使用
php.cn手册 发布
查询操作数类型的对齐要求。
_Alignof(类型名称) | (自C11以来) |
---|
该运算符通常通过alignof
标题中提供的方便宏来使用stdalign.h
。
返回由type-name命名的类型的对齐要求。如果type-name是数组类型,则结果是数组元素类型的对齐要求。类型名称不能是函数类型或不完整类型。
结果是一个整数常量类型size_t
。
操作数不计算(因此操作数中使用的外部标识符不必定义)。
一些C编译器允许使用与表达式的对齐作为非标准扩展。
_Alignof
.
#include <stdio.h>#include <stddef.h>#include <stdalign.h> 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 = 1Alignment of max_align_t = 16alignof(float[10]) = 4alignof(struct{char c; int n;}) = 4
C11标准(ISO / IEC 9899:2011):
6.5.3.4 sizeof和_Alignof运算符(p:90-91)
max_align_t(C11) | 对齐要求与其他标量类型一样大的类型(typedef) |
---|---|
_Alignas说明符 | 设置对象的对齐要求(自C11开始) |
| 用于alignof运算符的C ++文档