我理解 %#x 提供与 0x%x 相同的效果并且它符合 POSIX 标准。但是人们提到有些编译器不支持它。这是真的吗,有什么例子吗?
最佳答案
除了一些损坏的嵌入式系统 C 库之外,#
修饰符应该得到普遍支持。但是 %#x
和 0x%x
是不一样的。它们对值 0 产生不同的结果,并且 #
修饰符将始终以与十六进制数字相同的大小写打印 x
(例如 %#x
给出 0xa
和 %#X
给出 0XA
) 而使用 0x%X
会让你有一个小写的 x
和大写的十六进制数字(视觉效果更佳,至少对我而言)。因此,我发现 #
修饰符在实践中很少有用。
关于c - 什么编译器不支持 printf 标志中的 "%#x"样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715525/