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