C ++ void函数声明

时间:2011-10-27 08:59:48

标签: c++ void function-declaration

  

可能重复:
  C++ Why put void in params?

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

void function1();

void function2( void );

6 个答案:

答案 0 :(得分:7)

C ++没有区别,它定义为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()
{
    ...
}
     

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

int f();
     

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

答案 1 :(得分:6)

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

第二种更常用于C,第一种是C++中更常见的一种。

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

在C ++中,没有区别,第二种形式仅保留用于C兼容性。第一种形式在C ++中是首选。

在C中,它们意味着不同的东西。 第一种形式指定一个带有未知数量参数的函数,第二种形式是一个带零参数的函数。

答案 4 :(得分:0)

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

除此之外,没有区别。

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

答案 5 :(得分:0)

实际上没有区别。如果你没有任何参数传递给方法用户void或空括号。通知它只是传递参数。如果你的方法没有任何返回值,你必须使用void keyword.the第一个在C#中更常见

相关问题