gpt4 book ai didi

c - 如何使用 __STDC_VERSION__ 检查 -std=c1x 是否正在使用?

转载 作者:行者123 更新时间:2023-12-02 20:22:20 31 4
gpt4 key购买 nike

我知道对于 C11,我可以测试 #if(__STDC_VERSION >= 20112L)。但对于 -std=c1x

我应该测试什么宏和/或值?

该标准的术语是什么?或者可能是非正式名称(如果有)。我希望这一点很清楚。提前致谢。

最佳答案

gcc 的 -std=c1x 选项与 -std=c11 同义,它将 __STDC_VERSION__ 设置为相同的值, 201112L(注意:不是20112L)。

在发布之前,新的 C 标准被称为“C1X”(因为不知 Prop 体何时发布),并且 gcc 添加了一个 -std=c1x 选项为即将推出的标准启用部分支持。当该标准作为 C11 发布时,gcc 添加了 -std=c11 以启用(仍然是部分)支持,但保留了 -std=c1x 选项以实现兼容性。

(由于编辑错误,发布的 2011 ISO C 标准未指定 __STDC_VERSION__ 的值,但编辑已声明 201112L 是正确的;请参阅this question .)

Jens Gustedt 的评论提出了一个很好的观点。 gcc -std=c11__STDC_VERSION__ 设置为 201112LL,这应该意味着 C11 一致性,但实际上它仍然缺少 C11 功能的日志。我们预计这一点将在未来的版本中得到改进。

类似地,-std=c99__STDC_VERSION__ 设置为 199901L,但它完全不符合C99 标准(当前状态记录为 here 。gcc 的 C90 一致性(使用 -ansi-std=c90)非常符合 C90 标准。

关于c - 如何使用 __STDC_VERSION__ 检查 -std=c1x 是否正在使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805636/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com