我想编译这段代码:
#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
包含在内,一切都必须正常,不是吗?
附言我已经尝试在 gcc4.8 和 gcc4.9 下编译这段代码,但出现了所描述的错误。
最佳答案
要使用 C11 功能,您需要告诉编译器以 C11 兼容模式运行。
对于 gcc,这可以通过指定选项 -std=c11
来实现。
关于c - 包含 stddef.h 但未声明 max_align_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33134621/