尽管 C 和 C 之间有许多相似之处,但还是存在细微的差异。这就提出了一个问题:在两种语言中有效的代码在使用各自的标准编译器编译时是否仍然会产生不同的结果?
公平比较的前提条件
为了确保有意义比较,让我们建立某些条件:
行为差异
考虑以下代码片段:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
在 C 中,此代码将不会导致任何输出,因为创建并销毁了临时 f 对象。然而,在 C90 中,它将打印“hello”,因为可以在没有事先声明的情况下调用函数。
这种差异是由于 C 和 C 中 f() 的不同解释引起的。在 C 中,f() 被视为函数调用,而在 C 中,它被视为结构体的声明。
以上是C 和 C 中的有效代码在编译时会产生不同的输出吗?的详细内容。更多信息请关注PHP中文网其他相关文章!