C++ void函数声明

igg*_*012 4 c++ void function-declaration

可能重复:
C++为什么在params中放空?

这两个声明之间有什么区别,哪个更常用?

void function1();
Run Code Online (Sandbox Code Playgroud)

和

void function2( void );
Run Code Online (Sandbox Code Playgroud)

wor*_*rty 7

C++没有区别,它定义为0表示0参数.

然而,它确实在C中制作了一个(void)具有无参数的()平均值的函数,而具有任意数量参数的平均值.

来自http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fparam_decl.htm

函数定义中的空参数列表表示不带参数的函数.函数声明中的空参数列表指示函数可以采用任何数量或类型的参数.从而,

int f()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

表示函数f不带参数.然而,

int f();
Run Code Online (Sandbox Code Playgroud)

只是表明参数的数量和类型是未知的.要明确指出函数不带任何参数,您应该使用关键字定义函数void.


Alo*_*ave 6

没有区别C++.
第二个声明只是明确地说该函数没有参数.

第二种是更常用的C,第一种是更常见的C++.

存在的情况下,差异C的原因是:
有了(void),你指定的函数没有参数,同时与()您指定的参数是不确定的(自变量数目不详).

但是,如果它不是函数声明而是函数定义,那么即使C它也是如此(void).