前言
看C++项目的源代码时,发现很多地方出现void(val);
,百思不得其解,甚至还在VS里面自己写了一遍,发现(void)并不会改变变量类型,怎么尝试也不知道为什么,书上更是没有提及,今天看到一篇文章终于明白。
为什么使用void(val);
?
通过自己查资料,才发现作用是避免编译器警告。
声明/定义了但没使用的变量,在编译时会生成warning。
如果项目里是打开了-Werror选项,会将warning视为error,这样的话无法通过编译。
所以需要用这种方法绕过无关紧要的warning。
总结
看来实际的工程项目里面存在很多“潜规则”哇。用void来避免未使用警告真是太聪明了。这是教科书上不会讲的内容,只有实际开发时才会遇到。
参考
- 变量前(void)的作用? - 诸葛不亮的回答 - 知乎
https://www.zhihu.com/question/67831689/answer/256930061