我可以使用什么printf格式说明符在32/64位和Windows/POSIX上以十六进制表示法打印64位无符号整数?我见过的最接近%llX但是我不确定它是否足够便携.忽略较旧的编译器(例如Visual Studio 2010)的答案是可以接受的.
该PRIx64宏<inttypes.h>是你在找什么.
它是一个字符串标记,因此您可以将其用作:
fprintf(stdout, "answer = %"PRIx64"\n", val);
既然你指定了%llX,你可能想要大写; 使用:PRIX64