void在C語言中特殊使用

在C語言中,在定義函數時,加在函數名前的“void”表示該函數沒有返回值,調用時直接書寫函數名和參數即可。

但是有些函數明明在定義的時候不是void型,卻在調用時可能會在前面加上void,這表示程序並不關心調用該函數後的返回值是什麼,即告訴靜態代碼檢測工具不要去處理此處該函數的返回值。比如函數strcpy,我們直接用“strcpy(des_str, src_str);”這樣的形式來用。

但如“(void)strcpy(des_str, src_str);”這樣的形式還真不多見!原因是這種寫法不針對人,也不針對編譯器,而是針對靜態代碼檢測工具,它會把函數返回值作爲一項檢測標準。在某些大公司,比較重視代碼規範,若在代碼靜態檢測時需要檢測該項。此時就需要用在被調用的函數(名)前加上“(void)”這種形式來告訴靜態代碼檢測工具程序並非沒有處理該函數的返回值,而是該處確實不需要處理它(該函數的返回值),不需要再對該處代碼作此項檢測。其實這和我們在代碼中使用“#pragma warning (disable: XXXX)”的道理是一樣的。

原文出處:http://blog.sina.com.cn/s/blog_553fda9b0101falp.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章