【问题标题】:How can I figure out what is the default standard used by my C compiler GCC ? [duplicate]如何确定我的 C 编译器 GCC 使用的默认标准是什么? [复制]
【发布时间】:2015-02-14 04:35:41
【问题描述】:

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

【问题讨论】:

    标签: c gcc c99 c11 c89


    【解决方案1】:

    如有疑问,请查阅文档。 gcc man-page 清楚地表明 -std=gnu89 是 C 代码的默认值,-std=gnu++98 是 C++ 代码的默认值。这些选项的含义在手册页以及更详细的信息文档also available online 中都有描述。

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

    更新
    多年来,默认值发生了变化。从 2019 年 2 月发布的 GCC 8.3.0 开始,C 的 the default 标准是 -std=gnu11,而 C++ 的 -std=gnu++14。可以肯定的是,请查看您实际使用的编译器版本的documentation。

    【讨论】:

    • 感谢您,我找到了我正在寻找的 gnu89 ISO C90 的 GNU 方言(包括一些 C99 功能)。这是 C 代码的默认设置。 :D
    【解决方案2】:

    gcc 附带大量文档。

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

    对于最近的编译器(可以追溯到好几年前),默认值为 -std=gnu90,它实现了 1990 年 ISO C 标准(相当于 1989 年 ANSI C 标准)和一些 GNU 特定的扩展。

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

    【讨论】:

    • 我可能应该记得我发布了对重复问题的接受答案。 8-)}
    猜你喜欢
    • 2018-04-09
    • 2020-08-01
    • 2017-11-27
    • 2011-10-19
    • 2010-10-13
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多