为什么 alignof(max_align_t) 是 16?
Why is alignof(max_align_t) 16?
我是 运行 Debian x86_64 Intel 处理器。
gcc (Debian 8.3.0) 编译如下程序
#include <stdio.h>
#include <stdalign.h>
#include <stddef.h>
int main(){
printf("%zd\n",alignof(max_align_t));
}
并输出
16
什么数据类型需要 16 字节对齐?
在 x86_64、_Alignof(long double)==16
。
我是 运行 Debian x86_64 Intel 处理器。
gcc (Debian 8.3.0) 编译如下程序
#include <stdio.h>
#include <stdalign.h>
#include <stddef.h>
int main(){
printf("%zd\n",alignof(max_align_t));
}
并输出
16
什么数据类型需要 16 字节对齐?
在 x86_64、_Alignof(long double)==16
。