如果函数无参数,那么应声明其参数为void
<pre name="code" class="cpp">
int function()
{
return 1;
}
int main(void)
{
int ret = 0;
ret = function(2);
printf("rst:%d\n", ret);
return 0;
}
如果用gcc编译器(即C语言编译器)编译如上代码,没有编译错误,函数正常return(1),但是此时程序员已经误用了function函数,给其传入了参数,但是编译器忽略了,因为在定义function函数的时候没有指定参数必须为空,而是处于缺省状态。
但是如果使用g++(C++编译器)编译器去编译这段代码,就会出现编译错误如下:
"error: too many arguments to function ''int function()"
所以,无论在C 还是C++中,若函数不接受任何参数,一定要指明参数为void。以免某些编译器忽略了代码错误!!!
参考:
http://c.biancheng.net/cpp/html/444.html