为什么GCC默认不编译C99?我的意思是,为什么每次编写C99代码时都需要添加--std=c99标志?
-std=gnu11
是默认设置。请参见转换到GCC 5。
请参阅C语言方言选项,gnu89
是默认设置。
`gnu89'
GNU C90标准的方言(包括一些C99特性)。这是C代码的默认设置。
正如@tsv所提到的,ISO C99尚未得到完全支持:
`c99'
`c9x'
`iso9899:1999'
`iso9899:199x'ISO C99。请注意,此标准尚未得到完全支持;有关更多信息,请参见http://gcc.gnu.org/c99status.html。名称“c9x”和“iso9899:199x”已弃用。
还有:
`gnu99'
`gnu9x'GNU ISO C99标准的方言。当GCC完全实现ISO C99时,它将成为默认设置。名称“gnu9x”已弃用。
使用命令c99
编译C程序。
当前的POSIX标准指定了命令c99
,因此它应该在大多数类Unix系统中都可用。
C的默认模式现在是-std=gnu11而不是-std=gnu89。