4

可能重复:
C++ 为什么在参数中放置 void?

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

void function1();

void function2( void );
4

6 回答 6

7

There is no difference in C++, where it is well defined that it represents 0 parameters.

However it does make one in C. A function with (void) means with no parameter, whereas () means with any number of parameters.

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

An empty argument list in a function definition indicates that a function that takes no arguments. An empty argument list in a function declaration indicates that a function may take any number or type of arguments. Thus,

int f()
{
    ...
}

indicates that function f takes no arguments. However,

int f();

simply indicates that the number and type of parameters is not known. To explicitly indicate that a function does not take any arguments, you should define the function with the keyword void.

于 2011-10-27T09:10:05.840 回答
6

中没有区别C++
第二个声明只是明确表示该函数不带参数。

二是比较常用的C,一是比较常用的C++

情况有所不同,C因为:
使用(void),您指定函数没有参数,而使用()指定参数未指定(未知数量的参数)。

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

于 2011-10-27T09:01:21.193 回答
0

在 C++ 中,没有区别,第二种形式只是为了与 C 兼容而保留。第一种形式在 C++ 中是首选的。

在 C 中,它们的含义不同。第一种形式指定一个接受未知数量参数的函数,第二种是接受零个参数的函数。

于 2011-10-27T09:07:00.087 回答
0

一些非常老的(非标准)C 编译器可能会抱怨第一个编译器,所以第二个编译器应该更便携。

除此之外,没有任何区别。

第一个在用户代码中更常用,很简单,因为它更短。

于 2011-10-27T09:07:18.490 回答
0

actually there is no difference .if you have not any parameters to pass to the method user void or empty parentheses .notice that it just fro passed parameters.if your method has not any returned value you have to use void keyword.the first one is more common in C#

于 2011-10-27T09:09:47.403 回答
0

没有区别。我会说第一个更常见,清晰和简洁。

于 2011-10-27T09:01:16.593 回答