在 C/C++ 中,有两种方法可以声明一个不返回任何内容的函数。第一个是声明一个没有参数的函数:
// no arguments
void f() {
}
Run Code Online (Sandbox Code Playgroud)
第二个是声明一个函数,它需要void:
// still no arguments
void f(void) {
}
Run Code Online (Sandbox Code Playgroud)
但是,对于函数结果而言,情况并非如此:我们不能void像这样在函数的开头省略:
// returns nothing
f() {
return; // yay
}
Run Code Online (Sandbox Code Playgroud)
那么,绝对没有办法void像函数参数一样在函数的开头省略吗?
那么,绝对没有办法像函数参数一样在函数的开头省略 void 吗?
不,绝对没有。在 C++ 或 C99 或更高版本中,没有没有返回类型的函数声明语法。在 C99 之前的 C 中使用过,但默认返回类型将是int而不是void.
请注意,声明void f()和void f(void)在 C 中不等价。前者声明了一个带有未指定参数的函数,而后者声明了一个带有空参数列表的函数。在 C++ 中,两者都声明了一个带有空参数列表的函数。