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

http://en.cppreference.com/w/c/language/_Alignof