包含stddef.h但max_align_t未声明

我想编译这段代码:

#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来实现.

点赞