天天看點

程式設計習慣-函數無參數用void填充

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

繼續閱讀