【发布时间】:2011-12-31 01:23:26
【问题描述】:
我发现以下 sn-p(我认为是在 Wikipedia 中)在识别 C++ cmets 时创建了不同的运行时:
int a = 4 //* This is a comment, but where does it end? */ 2
;
但到目前为止,这是唯一的一个(不包括变体)。
我对使用 __STDC__ 等进行区分不感兴趣,对 C89 无法编译的程序也不感兴趣。
是否有其他程序/sn-ps 使用 C89 产生与 C99 不同的运行时?
【问题讨论】:
-
我认为整数文字类型的规则略有变化,因此您可能会编写一个表达式具有错误符号的程序,因此根据 C89 与 C99 的不同行为会有所不同...
-
@R.. 任何指向源的指针?我会自己弄清楚,但指向来源的指针会有所帮助。
-
对不起,这就是为什么我把它写成评论而不是答案。 :-)
-
我认为标准委员会花了很多精力来实现向后兼容性。如果您发现与您引用的不同,则应提交缺陷报告。
-
致投票结束这个问题的人:想象一下当你必须调试别人的代码,而你不知道他们最初依赖哪个编译器时会发生什么。
标签: c language-lawyer c99 c89