C++语言中int fun() 和 int fun(void)的区别?
参考答案:
在C++语言中,int fun() 和 int fun(void) 都表示一个返回类型为 int 的函数,但在函数参数列表的表示上有一些细微的差别。
- int fun():
这种声明方式在C++中是合法的,它表示一个不接受任何参数的函数。在C++中,当函数不接受任何参数时,可以省略参数列表,或者可以使用 void 作为参数列表。
int fun() {
// 函数体
}
- 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) 来明确表示一个不接受任何参数的函数。