前言
看C++項目的源代碼時,發現很多地方出現
void(val);
,百思不得其解,甚至還在VS裡面自己寫了一遍,發現(void)并不會改變變量類型,怎麼嘗試也不知道為什麼,書上更是沒有提及,今天看到一篇文章終于明白。
為什麼使用 void(val);
?
void(val);
作用是避免編譯器警告。
聲明/定義了但沒使用的變量,在編譯時會生成warning。
如果項目裡是打開了-Werror選項,會将warning視為error,這樣的話無法通過編譯。
是以需要用這種方法繞過無關緊要的warning。
總結
看來實際的工程項目裡面存在很多“潛規則”哇。用void來避免未使用警告真是太聰明了。這是教科書上不會講的内容,隻有實際開發時才會遇到。
參考
-
變量前(void)的作用? - 諸葛不亮的回答 - 知乎
https://www.zhihu.com/question/67831689/answer/256930061