我們知道,在定義函式時,加在函式名前的「void」表示該函式沒有返回值。但在呼叫時,在函式名前加「(void)」的作用又是什麼呢?
最明顯的一點就是表示程式並不關心呼叫該函式後的返回值是什麼,比如函式strcpy,我們直接用「strcpy(des_str, src_str);」這樣的形式來呼叫。「(void)strcpy(des_str, src_str);」這樣的形式還真不多見!
原因是這種寫法不針對人,也不針對編譯器,而是針對靜態**檢測工具,它會把函式返回值作為一項檢測標準。在某些大公司,比較重視**規範,若在**靜態檢測時需要檢測該項。此時就需要用在被呼叫的函式(名)前加上「(void)」這種形式來告訴靜態**檢測工具程式並非沒有處理該函式的返回值,而是該處確實不需要處理它(該函式的返回值),不需要再對該處**作此項檢測。其實這和我們在**中使用「#pragma warning (disable: ***x)」的道理是一樣的。
函式名前加static關鍵字
1.函式名前加static關鍵字 函式就被定義成為靜態函式。函式的定義和宣告預設情況下是extern的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。定義靜態函式的好處 1 靜態函式不能被其他檔案所用。2 其他檔案中可以定義相同名字的函式,不會發生衝突。3 靜態函式會被自動分配在乙個一直...
我們為什麼要在C 中使用虛函式
類中的成員函式分為靜態成員函式和非靜態成員函式,而非靜態成員函式又分為普通函式和虛函式。至於為什麼虛函式必須是非靜態成員函式,可以看一下 我們在類中定義函式的時候,在前面加上virtual就可以宣告為虛函式。接下來我們看乙個例子 include includeusing namespace std ...
C語言 函式定義時前加static 作用
函式中加 static 的含義不是指儲存方式,而是指對函式的作用域僅侷限於本檔案。使用內部函式的好處是 不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。根本原因是c語言中同乙個工程中不能有同名函式。定義靜態函式的好處 其他檔案中可以定義相同名字的函...