help,关于uint64类型数据的打印

jiaoyun007 2015-12-22 05:33:31
hi, 各位好
当前遇到个问题,有一个自定义uint64类型(因为权限问题,没看到uint64类型的具体定义)的参数,使用printf的%d格式打印时,居然出现负数,请问这是怎么回事?%d格式不对吗,还是要用%u?多谢!

分全在这里了,各位莫嫌少 O(∩_∩)O~

...全文
1064 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoyun007 2016-01-02
  • 打赏
  • 举报
回复
引用 6 楼 LLW059 的回复:
出现负数是溢出了,可以使用unsigned long long 或long long 类型,转换说明符使用"%llu"和"%lld"
多谢!结贴了
ReedLi 2015-12-24
  • 打赏
  • 举报
回复
出现负数是溢出了,可以使用unsigned long long 或long long 类型,转换说明符使用"%llu"和"%lld"
jiaoyun007 2015-12-23
  • 打赏
  • 举报
回复
引用 1 楼 fefe82 的回复:
会有啥权限问题阻止你看到它的具体定义? == 试试 %ld 。不过看不到定义,只是瞎猜。 == 你是什么系统,什么编译器?
linux系统,gmake
jiaoyun007 2015-12-23
  • 打赏
  • 举报
回复
引用 2 楼 yangyunzhao 的回复:
理论上不可能阻止的,如果仅仅声明而不定义的话,就必须提供一大堆函数来让你使用uint64 ps,可以用unsigned long long来做吧?windows下用%I64u,linux用%llu
试一下,有结果告诉你 :)
赵4老师 2015-12-23
  • 打赏
  • 举报
回复
%llu
yangyunzhao 2015-12-22
  • 打赏
  • 举报
回复
理论上不可能阻止的,如果仅仅声明而不定义的话,就必须提供一大堆函数来让你使用uint64 ps,可以用unsigned long long来做吧?windows下用%I64u,linux用%llu
fefe82 2015-12-22
  • 打赏
  • 举报
回复
会有啥权限问题阻止你看到它的具体定义? == 试试 %ld 。不过看不到定义,只是瞎猜。 == 你是什么系统,什么编译器?

70,028

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧