c - printf 长度修饰符 %L 是标准的(或 future 的标准)吗?

标签 c printf language-lawyer c99 c11

根据 cppreference.com长度修饰符 %L 仅对浮点类型有效。但是现代 GNU 编译器和库似乎也接受整数作为 %ll(long long)的同义词。 cppreference 是否有可能在这方面出错?或者整数的 %L 将来会成为标准吗?

最佳答案

来自最新的 C11 草案 N1570 , §7.21.6.1 第 7 节:

L -- Specifies that a following a, A, e, E, f, F, g, or G conversion specifier applies to a long double argument.

所以您的来源是正确的,L 作为长度修饰符 仅为 float 转换定义。我不希望这会在未来的版本中改变,因为根本没有必要。只需根据需要使用 lll

关于c - printf 长度修饰符 %L 是标准的(或 future 的标准)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45166975/

相关文章:

Bash printf 文字逐字字符串

c++ - 为什么 lambda 会删除 cv 和 ref?

c++ - 名称查找 : downsides to using unqualified class name inside a class definition/omitting template parameters?

c++ - 如何检查文件是否损坏?

c - 解码器函数在 C 中返回垃圾字符串。如何修复?

c - 如何在没有收到此警告的情况下打印出以下信息?

c - void* 是否始终具有与 char* 相同的表示形式?

C初始化数组结构错误

c - 一次引用的静态函数的优化

c - 使用 double 调用函数后所有小数都将被删除