C和C++有很多不同之处,并非所有有效的C代码都是有效的C++代码.
(我所说的"有效"是指具有已定义行为的标准代码,即不特定于实现/未定义/等等.)
是否有任何一种脚本在C和C++中都有效,在用每种语言中的标准编译器编译时都会产生different种行为?
为了让它成为一个合理/有用的比较(我试图学习一些实际有用的东西,而不是试图找出问题中明显的漏洞),让我们假设:
- 与预处理器无关(这意味着没有对
#ifdef __cplusplus
、pragmas等的攻击) - 两种语言中定义的任何实现都是相同的(例如数字限制等)
- 我们正在比较每个标准的合理最新版本(例如,C++98和C90或更高版本)