C/C++ 函数调用谜题?

cc++server side programmingprogramming更新于 2024/9/25 7:27:00

此 C/C++ 函数调用谜题旨在探索编程语言 C 和 C++ 中方法调用行为的更多内容。

C 和 C++ 中方法的输出不同。让我们看看在 C 和 C++ 中调用方法有什么不同。

让我们举个例子,检查以下代码在 c 和 c++ 中的输出。

示例

void method() {
   // 打印语句
}
int main() {
   method();
   method(2);
}

输出

对于 C++ −

Error : too many arguments to function ‘void method()’

对于 C −

Program runs without any error.

输出和错误背后的逻辑

C++ 编程语言的编译器将函数 method() 视为没有任何参数的函数,而 C 编译器中的相同函数工作得非常高效,因为编译器将函数 method() 视为可以接受可变参数的函数。

因此,在 C++ 中,当我们将参数传递给定义中没有参数的方法时,输出窗口中会出现错误提示,提示"错误:函数"void func()"的参数过多"。

而在 C 中,传递的参数被接受,函数内的代码被执行。


相关文章