在 C 和 C 中均有效的代码在每种语言中编译时是否会表现不同?
C 和 C 有许多相似之处,但某些代码在这些语言中编译时,即使代码在语法上是有效的,构造也会产生不同的结果
函数调用与对象声明
其中一个场景涉及函数调用。在C90中,无需事先声明即可调用函数。然而,在 C 中,当不声明调用 f() 时,会创建 f 类型的对象。
示例代码:
考虑以下代码:
#include <stdio.h> struct f { int x; }; int main() { f(); } int f() { return printf("hello"); }
行为区别:
版本注意事项:
此行为差异是 C90 特有的。在 C 标准的更高版本(例如 C99)中,无需声明即可调用函数不再有效。因此,代码在 C 和 C 中的行为都是相同的。
以上是尽管代码有效,函数调用在 C 和 C 中的行为是否会有所不同?的详细内容。更多信息请关注PHP中文网其他相关文章!