尝试使用 Printf uint64_t 时出现格式错误中的虚假尾随“%”
在尝试使用 printf 打印 uint64_t 变量时,您可能遇到诸如“格式中虚假尾随‘%’”之类的错误。让我们深入研究这个问题并探索解决方案。
提供的代码片段展示了使用 %" PRIu64 " 占位符打印 uint64_t 变量的尝试:
#include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; }
但是,编译失败与前面提到的错误消息。要解决此问题,您需要确保定义了必要的宏。 ISO C99 标准规定,仅在明确请求时才定义 PRIu64 宏。
因此,请在包含
#define __STDC_FORMAT_MACROS
With添加此行后,PRIu64 宏将被正确定义,并且您遇到的错误将得到解决。该宏允许在 printf 格式字符串中使用 PRIu64 占位符,从而允许您成功打印 uint64_t 变量。
以上是为什么打印 `uint64_t` 会导致'格式中虚假尾随 '%'”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!