首页 > 后端开发 > C++ > 为什么打印 `uint64_t` 会导致'格式中虚假尾随 '%'”错误?

为什么打印 `uint64_t` 会导致'格式中虚假尾随 '%'”错误?

Patricia Arquette
发布: 2024-11-17 21:21:02
原创
918 人浏览过

Why Does Printing a `uint64_t` Result in a

尝试使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板