C11的__STDC_VERSION__值是多少?

pax*_*blo 30 c macros iso c11

我知道编译器__STDC__用来表示编译器是标准C,从那里,您可以__STDC_VERSION__用来确定您正在使用的标准级别.

我也知道C90没有价值,C90修正案1 199401L和C99有199901L.

最新的C1x草案我简单地说明了它201ymmL,我认为它在最终标准中的价值不那么"模糊".

我的猜测是,201112L自那时起C11被批准,但我想确定.

我以为我可以尝试使用,gcc -std=c1xgcc我正在运行的版本还不支持.

有谁知道实际价值是多少?

oua*_*uah 30

随着-std=c11gcc,201112L用于__STDC_VERSION__

请参阅gcc2011年12月20日关于gccml的此补丁:

http://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg23572.html

请注意,显然ISO版本的C11忘记更新201ymmL草稿.

预期的最终____STDC_VERSION____值(201112L)也已实现(编辑器在发送文档以供ISO发布之前忘记更新201ymmL占位符).

另请参阅DR#411,它正式确定了预期值201112l.编辑说:"该委员会正试图尽快将其作为TC批准." .(TC ="技术勘误")

编辑(2012年7月16日):技术勘误1(ISO/IEC 9899:2011 /林前1:2012)于7月15日发布的2012年修复的__STDC_VERSION__201112L.

  • 我有最终的ISO版本,我可以确认他们忘了改变它.它仍然像选秀中一样说"201ymmL". (4认同)