在 C++ 中省略 void 作为函数结果
Omit void as function result in C++
在C/C++中有两种方法可以声明一个returns什么都没有的函数。
第一个是声明一个没有参数的函数:
// no arguments
void f() {
}
第二个是声明一个接受void
:
的函数
// still no arguments
void f(void) {
}
然而,对于函数的结果却不是这样:我们不能像这样在函数的开头省略 void
:
// returns nothing
f() {
return; // yay
}
那么,有没有办法像函数参数一样在函数开头省略void
?
So, is there absolutely no way to omit void at the beginning of the function like with the function arguments?
不,绝对没有。在 C++ 或 C99 或更高版本中,没有不具有 return 类型的函数声明语法。在 C99 之前的 C 中使用,但默认的 return 类型应该是 int
而不是 void
.
注意声明void f()
和void f(void)
在C语言中是不等价的。前者声明一个参数未指定的函数,而后者声明一个参数列表为空的函数。在 C++ 中,两者都声明了一个参数列表为空的函数。
在C/C++中有两种方法可以声明一个returns什么都没有的函数。 第一个是声明一个没有参数的函数:
// no arguments
void f() {
}
第二个是声明一个接受void
:
// still no arguments
void f(void) {
}
然而,对于函数的结果却不是这样:我们不能像这样在函数的开头省略 void
:
// returns nothing
f() {
return; // yay
}
那么,有没有办法像函数参数一样在函数开头省略void
?
So, is there absolutely no way to omit void at the beginning of the function like with the function arguments?
不,绝对没有。在 C++ 或 C99 或更高版本中,没有不具有 return 类型的函数声明语法。在 C99 之前的 C 中使用,但默认的 return 类型应该是 int
而不是 void
.
注意声明void f()
和void f(void)
在C语言中是不等价的。前者声明一个参数未指定的函数,而后者声明一个参数列表为空的函数。在 C++ 中,两者都声明了一个参数列表为空的函数。