16.1 為什麼調用 printf() 前, 必須要用 #include <stdio.h>?

為了把 printf() 的正確原型說明引入作用域。

對於用可變參數的函數, 編譯器可能用不同的調用次序。例如, 如果可變參數的調用 比固定參數的調用效率低。所以在調用可變參數的函數前, 它的原型說明必須在 作用域內, 編譯器由此知道要用不定長調用機制。在原型說明中用省略號  ``..." 來表示可變參數。

參考資料: [ISO, Sec. 6.3.2.2, Sec. 7.1.7]; [Rationale, Sec. 3.3.2.2, Sec. 4.1.6]; [H&S, Sec. 9.2.4 pp. 268-9, Sec. 9.6 pp. 275-6]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)