我偶然发现GNU C 库文档中存在以下缺陷:
\n\n\n\xe2\x80\x98%f\xe2\x80\x99
\n以正常(定点)表示法打印浮点数。有关详细信息,请参阅浮点转换。
\n
%F尽管根据C99 标准,但它没有在任何地方提到:
\n\nF 转换说明符分别生成 INF、INFINITY 或 NAN,而不是 inf、infinity 或 nan。
\n
一个简单的例子来测试这一点:
\ndouble inf = 1.0 / 0.0;\nprintf( "Testing on %ld.%ld, %%f: %f and %%F: %F.\\n", __GLIBC__, __GLIBC_MINOR__, inf, inf );\nRun Code Online (Sandbox Code Playgroud)\n这输出:
\nTesting on 2.24, %f: inf and %F: INF.\nRun Code Online (Sandbox Code Playgroud)\n所以它应该按其应有的方式工作,而不是像文档所说的那样。
\nF我在想为什么文档中没有大写功能。是否有意义?是的。符合标准吗?是的。是否能够实施?是的。所以,我不明白原因。
是否有约定将标准规定的问题自动视为库文档的一部分?使用安全吗%F以 printf 格式