C 的格式说明符指南

Format specifier guide for C

是否有适用于每种数据类型和所有情况的 C 格式说明符的完整在线指南?我只找到了部分和对比的参考资料,这些参考资料并没有解释所有可能的情况。

权威指南是实际的 ISO 标准本身。任何其他来源都可能存在不正确或不完整的潜在缺陷。根据定义,该标准既正确又完整(a).

而且,虽然标准文档有时可能枯燥难读,但涵盖格式说明符的部分相当清晰,无论是在所有说明符的含义方面(包括标志、width/precision 说明符,以及长度修饰符),以及允许与这些说明符一起使用的数据类型。

对于 示例, C11(b) 详细说明了 7.21.6.17.21.6.2 中的所有格式说明符printfscanf 函数族。此标准迭代的最后一个免费草案是 N1570 文档。

也就是说,实际上,C11 标准 - 正式来说,它是 C11 的最新 draft 并且,要获得 real标准,你需要从你所在国家的标准机构购买。但是,差异很小,并且本质上是行政性的。


(a) 我并不是说这个标准是完全连贯的或没有错误的,只是说它 标准。这意味着,在未决的授权更改中,实现必须 遵循 所述标准才能被视为 C。如果一个实现这样做,它是有效的,无论标准中可能有什么疯狂:- )


(b) 虽然 C11(我们使用的迭代,因此最熟悉)可能已被 C18 正式取代,但变化只是合并了TC 和缺陷修复。标准的 "meat" 没有实质性变化,特别是对于这个问题,格式说明符。