mal*_*lat 2 c printf c99 format-specifiers language-lawyer
我想了解以下部分:
l (ell)用于指定后续的
d,i,o,u,x,或X转换说明适用于一个long或unsigned long参数; 以下n转换说明符适用于指向long参数的指针; 以下c转换说明符适用于wint_t参数; 以下s转换说明符适用于指向wchar_t参数的指针; 或具有在下文中没有任何影响a,A,e,E,f,F,g,或G转换说明.
我还可以看到这与cppreference一致:fprintf在哪里"%f"和"%lf"等同于printf()家庭.
那么,这个答案错误?或是否C99清楚,现在"%f"是float,虽然"%lf"是double针对printf()家庭功能?
文档是正确的:printf看到float和之间没有区别double.
该printf族的函数参数通过可变长度机制获得.在可变长度参数列表的可变长度部分中,"默认参数促销"适用:类型char并short int被提升为int,并float被提升为double.