我想编译这段代码:
#include <stdalign.h>
#include <stdio.h>
#include <stddef.h>
int main ( int argc , char ** argv )
{
printf ("%zu\n", alignof ( max_align_t ));
return 0;
}
但是编译器说:
error: ‘max_align_t’ undeclared".
stddef.h
已包含在内,一切都必须正常,不是吗?
P.S。我已经尝试在gcc4.8和gcc4.9下编译这段代码,但是我有错误描述。
答案 0 :(得分:4)
要使用C11功能,您需要告诉编译器以C11兼容模式运行。
对于gcc,可以通过指定选项-std=c11
来实现。
答案 1 :(得分:-1)
我使用的是本机基于c99的编译器,该编译器使用了stddef.h。在我的计算机上,我需要使用-std = c11选项以及一个显然与c11对应的头文件。