我如何找出C编译器GCC使用的默认标准是什么?

use*_*448 3 c gcc c99 c89 c11

一切都在标题中,我进行了很多搜索,但找不到使用我的编译器的标准是C89 C90 C99还是C11 ...我的意思是当我们不指定-std选项(默认选项)时?

use*_*342 7

如有疑问,请查阅文档。在GCC手册页明确指出-std=gnu89是C代码的默认值,-std=gnu++98是C ++代码的默认。这些选项的含义在手册页中进行了描述,更详尽的信息也在在线上提供的详细信息文档中进行了描述。

这些标志的默认值之前已经更改,并且将再次更改,因此最好在采用特定值之前进行检查。

更新
这些年来默认值已更改。自2019年2月发布的GCC 8.3.0起,C 的默认标准为-std=gnu11-std=gnu++14C ++ 的默认标准。当然,请查看您实际使用的编译器版本的文档


Kei*_*son 5

gcc 附带了大量文档。

输入info gcc并阅读手册的“标准”部分。

对于大多数最新的编译器(可以追溯到很多年前),默认值是-std=gnu90,它实现了 1990 年 ISO C 标准(相当于 1989 年 ANSI C 标准)以及一些特定于 GNU 的扩展。

(我会向您指出网络上的 gcc 手册,但这将记录最新版本,而不是您正在使用的版本。我认为您的文档与您正在使用的版本相同。)

  • 我可能应该记得我发布了重复问题的已接受答案。8-)} (2认同)