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)