【发布时间】:2020-04-30 20:05:51
【问题描述】:
我在 x86_64 Intel 处理器上运行 Debian。
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 字节对齐?
【问题讨论】:
-
__int128。此外,它完全可以是任意值 AFAIK。 -
经常
long double. -
max_align_t保证“至少和最大类型一样大”,而不是“完全一样大”。所以即使最大的数据类型只有 8,它也可能是 16。
标签: c memory-alignment alignof