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

2024-05-10

int fn();

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

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


David's answer https://stackoverflow.com/questions/689677/casting-unused-return-values-to-void/689688#689688几乎涵盖了这样做的动机,明确地向其他“开发人员”表明您知道该函数返回但您明确忽略它。

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

我认为对于 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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么将未使用的返回值转换为 void? 的相关文章

随机推荐