C和C++有许多不同之处,并非所有有效的C代码都是有效的C++代码.
("有效"是指具有已定义行为的标准代码,即不是特定于实现/未定义/等.)
在使用每种语言的标准编译器编译时,是否有任何一种在C和C++中都有效的代码会产生不同的行为?
为了使它成为一个合理/有用的比较(我试图学习一些实用的东西,而不是试图在问题中找到明显的漏洞),让我们假设:
#ifdef __cplusplus,pragma等) 我知道编译器__STDC__用来表示编译器是标准C,从那里,您可以__STDC_VERSION__用来确定您正在使用的标准级别.
我也知道C90没有价值,C90修正案1 199401L和C99有199901L.
最新的C1x草案我简单地说明了它201ymmL,我认为它在最终标准中的价值不那么"模糊".
我的猜测是,201112L自那时起C11被批准,但我想确定.
我以为我可以尝试使用,gcc -std=c1x但gcc我正在运行的版本还不支持.
有谁知道实际价值是多少?
取自http://www.ocf.berkeley.edu/~wwu/riddles/cs.shtml
它看起来非常适合我的编译器.不知道在哪找?