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(使用前将#替换为@)