【发布时间】:2012-03-06 20:14:24
【问题描述】:
我知道编译器使用__STDC__ 表示编译器是标准C,并且从那里,您可以使用__STDC_VERSION__ 来确定您使用的标准的级别 .
我也知道C90没有价值,C90修正案1有199401L,C99有199901L。
最新的 C1x 草案我简单地将其声明为 201ymmL,并且我假设它在最终标准中的值不那么“模糊”。
我的猜测是201112L,因为那是 C11 被批准的时候,但我想确定一下。
我想我可以尝试使用gcc -std=c1x,但我正在运行的gcc 版本还不支持。
有谁知道实际值是多少?
【问题讨论】:
-
在任何情况下,C 版本的编号都足够粗略,您可以只测试
> 201100L。 -
Lundin:已经关闭了骗局。
-
@paxdiablo 是的,好吧......你和我都不适合这样做(以我们自己的帖子为目标关闭帖子作为欺骗),因为我们是部分的。链接的不是这个的欺骗,而是相反,因为 TC 还包含除
__STDC_VERSION__之外的其他内容。 -
作为任何人的附录,C17 的值是
201710L。