转换函数返回void

Rus*_*ell 13 c

我多次在开源代码中看到对C函数的调用被转换为void.

例如,在ls(http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ls/ls.c)的源代码中,我看到以下内容.

(void) setlocale(LC_ALL, "");
Run Code Online (Sandbox Code Playgroud)

为什么这是一个好习惯?

zne*_*eak 21

它明确意味着你忽略了返回值,并没有忘记它.

  • 某些静态分析器会在静默忽略返回值时发出警告,并且在通过强制转换为void显式忽略时不会发出警告.当我们只有错误代码而没有例外时更重要... (4认同)
  • ... C仍然没有例外,谢天谢地. (4认同)
  • @Peter G.:这个问题被标记为C.他们仍然没有例外. (3认同)
  • 这是一种向静态分析器隐藏事实的方法,即您忽略了应该检查的错误代码;三年后,一些可怜的竹节将不得不调试由于您没有检查错误代码而引起的问题。 (2认同)