C和C ++有很多区别,并非所有有效的C代码都是有效的C ++代码。
(“有效”是指具有定义行为的标准代码,即不是特定于实现的/未定义的等。)
在任何情况下,使用每种语言的标准编译器进行编译时,在C和C ++中都有效的一段代码会产生不同的行为吗?
为了使其成为合理/有用的比较(我试图学习一些实用的东西,而不是试图在问题中发现明显的漏洞),我们假设:
与预处理器无关(这意味着不会与#ifdef __cplusplus
,编译指示等发生冲突)
实现定义的任何内容在两种语言中都是相同的(例如,数值限制等)
我们正在比较每个标准的合理最新版本(例如C ++ 98和C90或更高版本)。
如果版本很重要,请说明每个标准的哪个版本会产生不同的行为。
人到中年有点甜
慕尼黑8549860
GCT1015