C++ void函数声明
什么是这两个声明和使用更普遍的区别?
void function1();
和
void function2(void);
C++没有什么区别,它很好地定义了它代表0个参数。
然而,它确实用C表示。具有(void)
的函数表示没有参数,而()
表示具有任意数量的参数。
在函数定义一个空的参数列表指示功能 不带任何参数。函数声明 中的空参数列表指示函数可以采用任何数量或类型的参数。因此,
int f() { ... }
指示函数f不采用参数。但是,
int f();
只是表示参数的数量和类型未知。 要明确指示函数不带任何参数,应该使用关键字
void
定义函数 。
令人惊叹的解释。非常感谢wormsparty – iggy2012
不客气:) – wormsparty
没有区别。我会说第一个更为常见,清晰和简洁。
C++
没有什么区别。
第二个声明只是明确表示该函数不带参数。
二是更常用的C
,首先是在C++
中比较常见的一种。
有一个在C
情况下,差异的原因是:
随着(void)
,你指定的函数没有参数,同时与()
您指定的参数是不确定的(自变量数目不详)。
但是,如果它不是函数声明而是函数定义,那么即使在C
中它也与(void)
相同。
在C++中,没有区别,第二种形式仅保留用于C兼容性。第一种形式在C++中是首选。
在C中,它们表示不同的事物。 第一种形式指定一个函数,它接受未知数量的参数,第二种形式是一个采用零参数的函数。
一些很老的(非标准的)C编译器可能会抱怨第一个,所以第二个应该更加便携。
除此之外,没有区别。
第一个更常用于用户代码,很简单,因为它更短。
实际上没有区别如果你没有任何参数传递给方法用户无效或空括号。注意它只是来自参数。如果你的方法没有任何返回值,你必须使用void关键字。第一个在C#中更为常见
可能的重复http://stackoverflow.com/q/5587207/198011 –