c++ - 为什么将未使用的返回值转换为 void?

标签 c++ c void

int fn();

void whatever()
{
    (void) fn();
}

是否有任何理由将未使用的返回值强制转换为 void,还是我认为这完全是浪费时间?

最佳答案

大卫的answer几乎涵盖了这样做的动机,明确地向其他“开发人员”表明您知道此函数返回但您明确忽略它。

这是一种确保始终处理必要的错误代码的方法。

我认为对于 C++,这可能是我也更喜欢使用 C 风格强制转换的唯一地方,因为在这里使用完整的静态强制转换表示法感觉有点矫枉过正。最后,如果您正在审查或编写编码标准,那么明确声明对重载运算符(不使用函数调用表示法)的调用也应该免除这一点也是一个好主意:

class A {};
A operator+(A const &, A const &);

int main () {
  A a;
  a + a;                 // Not a problem
  (void)operator+(a,a);  // Using function call notation - so add the cast.

关于c++ - 为什么将未使用的返回值转换为 void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434072/

相关文章:

c++ - 从文件中读取然后从转换为 int?

c - 为什么用 EOF 清空 stdin

c - 为什么模在此 C 代码中无法正常运行?

c - 是否可以让 Gyp 生成预(或后)构建步骤?

c - 从 double 函数返回 void?

java - 使用动态字符串工作函数?

c++ - typedef 一个指向指针的类型

c++ - 如何在 GitHub 存储库的团队服务构建中链接第三方库 (.lib)?

c++ - C 与 C++ 中 void* 的转换

c - int main() 和 void main() 是如何工作的?