18.5 为什么有些代码在每次调用 printf() 前, 加了类型转换 (void)?

printf() 确实返回一个值, 虽然极少数程序员去检验每次调用的返回值。 由于有些编译器和 lint 对于被丢弃的返回值会报警告, 清楚的用  (void) 作类型转换相当于说: ``我决定忽略这次调用的返回值, 请继续对于其他忽略返回值的情况 (也许是不应该的) 提出警告。" 通常, 无值类型转换也用于 strcpy() 和 strcat() 的调用, 他们的返回值从不会令人惊讶。

参考资料: [K&R2, Sec. A6.7 p. 199]; [Rationale, Sec. 3.3.4]; [H&S, Sec. 6.2.9 p. 172, Sec. 7.13 pp. 229-30]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)