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)
来明确表示一个不接受任何参数的函数。