64位十六进制的便携式printf格式说明符?

时间:2015-09-23 17:11:31

标签: c printf

我可以使用什么printf格式说明符在32/64位和Windows / POSIX上以十六进制表示法打印64位无符号整数?我最近看到的是%llX,但我不确定它是否足够便携。忽略旧编译器(例如Visual Studio 2010)的答案是可以接受的。

2 个答案:

答案 0 :(得分:6)

<inttypes.h>中的PRIx64宏是您正在寻找的。

这是一个字符串标记,因此您可以将其用作: fprintf(stdout, "answer = %"PRIx64"\n", val);

由于您指定%llX,您可能需要大写;使用:PRIX64

答案 1 :(得分:1)

您可以使用标头App中定义的宏PRIx64PRIX64 (for unsigned uppercase hexadecimal integer )