首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用C语言打印uint64_t*值

用C语言打印uint64_t*值
EN

Stack Overflow用户
提问于 2020-10-05 18:46:47
回答 1查看 253关注 0票数 0

我使用了以下代码:

代码语言:javascript
运行
复制
    size_t offset = (rand() << 12) % chunk_size;
    uint64_t *addr = (uint64_t*) (chunk+offset);
    fprintf(stdout,"addr: %" PRIx64 " ", addr);

我包含了<inttypes.h>库,但我得到了以下错误:

代码语言:javascript
运行
复制
error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint64_t *’ {aka ‘long unsigned int *’} [-Werror=format=]
fprintf(stdout,"addr: %" PRIx64 " ", addr);  
                                       uint64_t * {aka long unsigned int *}

In file included from filename.c:5:
/usr/include/inttypes.h:121:34: note: format string is defined here
  121 | # define PRIx64  __PRI64_PREFIX "x"
cc1: all warnings being treated as errors
make: *** [Makefile:8: filename.o] Error 1

为什么?

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-05 18:56:33

问题是您想要打印的类型是uint64_t *而不是uint64_t,所以如果您想打印指针(addr),只需在printf中使用%p,否则您需要使用*取消对指针的引用。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64207102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档