16.2 為什麼 %f 可以在 printf() 參數中, 同時表示 float 和
double?他們難道不是不同類型嗎?
``參數默認晉級" 規則適用於在可變參數中的可變動部分: char 和
short int 晉級到 int, float 晉級到 double。
同樣的晉級也適用於在作用域中沒有原型說明的函數調用, 即所謂的 ``舊風格" 函數
調用, 參見問題 11.4。所以 printf 的 %f 格式總是得到
double。類似的, %c 總是得到 int, %hd 也是。
參見問題 12.7, 12.13。
參考資料: [ISO, Sec. 6.3.2.2]; [H&S, Sec. 6.3.5 p. 177, Sec. 9.4
pp. 272-3]。
翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)