Possible Duplicate:
casting unused return values to void
(void)
的目的是什么?例如,在函数调用之前
(void)func1();
我认为这与简单地调用 func1();
相同
因此是(void)
调用只是为了让其他程序员知道返回类型将被忽略,例如如果 func1()
返回类型为 int
,或者编译器是否可能对该函数执行一些优化?也许它背后还有另一个原因——它是合法的 C++ 还是在某些遗留代码中看到的 C 的残余。
谢谢
最佳答案
在一种情况下,强制转换为 void 可以产生语义效果:如果值是逗号运算符的操作数并覆盖逗号运算符,则强制转换为 void 将抑制它:
struct S {
int operator,(int) { return 0; }
};
std::cout << (S(), 42) << '\n'; // prints '0'
std::cout << ((void) S(), 42) << '\n'; // prints '42'
关于c++ - 在函数调用之前使用 (void),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140643/