c++ - 在函数调用之前使用 (void)

标签 c++ c

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/

相关文章:

c - 用 C 模糊图像

c - 何时使用 union ,何时使用结构

<...> 之间的 C 条 html

c++ - MinGW g++ 4.8.1-4 无法识别 -std=c++14

c++ - 模板特定方法

c++ - 如何在 Windows 应用程序中截取屏幕截图?

计算到特定时间的分钟数? (C)

c++ - mbstowcs 在 Red Hat Linux 上返回 -1,但在 Solaris 上不返回

c++ - 将寄存器设计成可由 C 和 C++ 访问的外围设备的最佳实践?

c - 在不中断 C 中的输入提示的情况下在不同位置打印消息