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

weixin_33806914發表於2016-01-15

如果函式無引數,那麼應宣告其引數為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


相關文章