如何找出我的gcc默认使用的ANSI C标准?

时间:2011-09-17 22:45:12

标签: c gcc

我看了here它是带扩展名的C90。我怎么知道?

5 个答案:

答案 0 :(得分:7)

阅读联机帮助页。在我的计算机上(OSX 10.7,gcc版本4.2.1(基于Apple Inc. build 5658)(LLVM build 2335.15.00)):

  

-std =
  确定语言标准。目前仅支持此选项   在编译C或C ++时。

     

必须提供此选项的值;可能的值是

     

...

     

gnu89
  默认,ISO C90加上GNU扩展(包括一些C99功能)。

     

...

     

gnu ++ 98
  与-std = c ++ 98加上GNU扩展相同。这是C ++代码的默认值。

答案 1 :(得分:5)

尝试以下命令并搜索std

gcc -v --help | less

它会显示gcc的所有可用选项。

答案 2 :(得分:4)

使用-std=标记指定语言方言:c89c99c++98等。请注意c90相当于{{1} }}

作为简写c89导致C模式下的-ansi和C ++模式中的-std=c89

使用-std=c++98启用标准所需的所有诊断。

C的默认值为-pedantic,C ++的默认值为gnu89。有关各种方言的详细说明,请参阅手册。

答案 3 :(得分:0)

您还可以选中其中一个predefined Macros,例如默认情况下您的GCC是否要求ANSI C( STRICT__ANSI )(即没有任何cli参数)。

答案 4 :(得分:0)

默认情况下,没有任何版本的gcc完全符合任何ANSI或ISO C标准。默认值始终等于-std=gnuNN,支持GNU特定扩展的给定标准。在版本5之前(并且可以追溯到几年),默认值为-std=gnu90。从版本5开始,默认值为-std=gnu11

有三种ISO C标准:C90,C99和C11。 (C95是对C90的一个小修正。)第一个ANSI C标准于1989年出版,被称为C89;它描述的语言与ISO C90标准相同。

要查找已运行的gcc的默认语言版本,请键入

 info gcc

搜索短语"默认"。

这假定您已安装gcc文档,info gcc显示的文档与您正在运行的gcc版本相匹配,并且措辞类似于搜索"默认"会找到正确的信息。这些都不是保证。较旧的gcc手册可能以不同的方式组织。

更可靠,运行

gcc --version

查看您正在运行的版本,然后访问GCC online documentation页面并阅读您正在运行的版本的文档。

更简单地说,如果您的版本在5.0之前,则默认为-std=gnu89;否则默认值为-std=gnu11。 (这可能会在未来的版本中发生变化,但只有在新的ISO C标准发布并且gcc维护者有时间实施它并决定将其作为默认值之后的一段时间。不要屏住呼吸。)< / p>

或者您可以通过使用-std=...命令行选项指定所需的版本来完全避免该问题。