【发布时间】:2011-09-12 01:29:15
【问题描述】:
我想向使用混合 32/64 位构建的 printf 推荐使用 <inttypes.h>。我尝试在 Google 上搜索包含一些示例和使用指南的介绍或教程页面,但找不到。
有人可以推荐<inttypes.h>的介绍或教程吗?
【问题讨论】:
-
“混合 32/64 位构建”到底是什么意思。是否会期望用户使用来自
stdint.h的“固定大小”类型?埃德温的回答中是否有什么特别缺乏的东西导致了赏金的增加? -
@Michael:是的,当您在 LP64 下使用已知宽度的整数类型(如
int64_t)时,就会出现问题,其中对应于long。在这种情况下,正确的格式说明符是%ld,但如果您构建在对应于long long的32 位系统上,那么您需要%lld。我希望有一个既能激发使用<inttypes.h>的描述(正如我在此评论中简要做的那样)并提供示例。我可以指出一些事情,以免自己不得不解释原因和方法。