C99不是GCC的默认C版本?

smi*_*dha 11 c gcc c99

为什么GCC默认不编译C99?我的意思是为什么每次编写C99代码时都需要添加--std = c99标志?

Gre*_*osz 10

编辑:从GCC 5开始,-std=gnu11是默认值.请参阅移植到GCC 5.


请参阅C方言选项,gnu89是默认值.

`gnu89'

GNU方言的ISO 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"

ISO C99的GNU方言.当ISO C99在GCC中完全实现时,这将成为默认值.名称`gnu9x'已弃用.


tsv*_*der 10

也许是因为它还没有完全实现 - 请参阅C99状态.

也有人认为C99的功能尚未被广泛采用,尽管这是一个循环论证.


Juk*_*ela 10

使用该命令c99编译C程序.

当前的POSIX标准指定了命令c99,因此它应该在大多数类Unix系统中可用.