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/13954517/