可能重复:
void cast 有什么作用?
我刚刚浏览了一个项目,发现了这个
//This is in a .cpp file
#if xxx == 5
(void)var;
#endif
这是(void)var
做什么的?这样做有什么意义。我听说这与compilation
.
添加 c 和 cpp 标记以防这很常见。
可能重复:
void cast 有什么作用?
我刚刚浏览了一个项目,发现了这个
//This is in a .cpp file
#if xxx == 5
(void)var;
#endif
这是(void)var
做什么的?这样做有什么意义。我听说这与compilation
.
添加 c 和 cpp 标记以防这很常见。
(void)var;
这个声明实际上什么也没做。但有助于使编译器静音。
这样做主要是为了避免未使用的变量警告。
回复@vonbrand 的评论。这是有用的情况。
例如,在 gcc 中,当-Werror
makefile 中默认使用编译选项时,可能不希望对整个项目进行修改。(void)var;
此外,它对任何变量都是完全无害且可移植的。所以我不明白为什么在某些情况下帮助程序员的生活更轻松是一个坏主意。
因此,摆脱未使用的变量并不总是可取的。这样做会在以后需要时需要更多的工作。
转换为 void 是为了避免编译器警告未使用的变量。
这也可以使用编译器的标志在全局级别上完成:-Wno-unused-variable。