跳到主要内容

C++语言中int fun() 和 int fun(void)的区别?

参考答案:

在C++语言中,int fun()int fun(void) 都表示一个返回类型为 int 的函数,但在函数参数列表的表示上有一些细微的差别。

  1. int fun()

这种声明方式在C++中是合法的,它表示一个不接受任何参数的函数。在C++中,当函数不接受任何参数时,可以省略参数列表,或者可以使用 void 作为参数列表。

int fun() {
    // 函数体
}
  1. int fun(void)

这种声明方式在C和C++中都是合法的。它明确指出该函数不接受任何参数。使用 void 作为参数列表可以清晰地表明该函数不接受任何参数。

int fun(void) {
    // 函数体
}

注意:在C语言中,int fun()int fun(void) 是有区别的。在C语言中,int fun() 被视为接受不确定数量参数的函数,而 int fun(void) 则明确表示不接受任何参数。

然而,在C++中,int fun() 的含义已经明确,它不再表示接受不确定数量参数的函数。因此,在C++中,int fun()int fun(void) 在语义上是等价的,都表示一个不接受任何参数的函数。

总结

  • 在C++中,int fun()int fun(void) 都表示一个不接受任何参数的函数,并且在语义上是等价的。
  • 在C语言中,int fun() 表示接受不确定数量参数的函数,而 int fun(void) 表示不接受任何参数的函数。

在编写跨C和C++的代码时,为了保持清晰和避免混淆,最好始终使用 int fun(void) 来明确表示一个不接受任何参数的函数。