如果函數無參數,那麼應聲明其參數為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