stddef.h 已包含但未声明 [=11=]
stddef.h is included but max_align_t is undeclared
我想编译这段代码:
#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 下编译这段代码,但出现了所描述的错误。
要使用 C11 功能,您需要告诉编译器 运行 在 C11 兼容模式下。
对于 gcc,这可以通过指定选项 -std=c11
.
来实现
我使用的编译器本身基于 c99,它使用 stddef.h。在我的计算机上,我需要使用 -std=c11 选项以及一个显然对应于 c11.
的头文件
我想编译这段代码:
#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 下编译这段代码,但出现了所描述的错误。
要使用 C11 功能,您需要告诉编译器 运行 在 C11 兼容模式下。
对于 gcc,这可以通过指定选项 -std=c11
.
我使用的编译器本身基于 c99,它使用 stddef.h。在我的计算机上,我需要使用 -std=c11 选项以及一个显然对应于 c11.
的头文件