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

Portable printf format specifier for 64 bit hexadecimal?

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

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

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

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

您可以使用在 header <inttypes.h> 中定义的宏 PRIx64PRIX64 (for unsigned uppercase hexadecimal integer )