问如何%f用于两者float和double参数在printf?它们不是不同的类型吗?
答在可变参数列表的可变长度部分,应用“默认参数提升”:类型char和short int被提升为int,而float被提升为doubledoubleprintf%f%f的格式始终看到一个doubledouble%c总是看到一个intint%hd一样。) 另请参阅问题 12.9 和 12.13。
参考:ISO Sec. 6.3.2.2
H&S Sec. 6.3.5 p. 177, Sec. 9.4 pp. 272-3