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)