在 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++ 中,两者都声明了一个参数列表为空的函数。