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