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 中,传递的参数被接受,函数内的代码被执行。