C/C++ int32_t和printf格式:%d或%ld?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C/C++ int32_t和printf格式:%d或%ld?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含822字,纯文字阅读大概需要2分钟。
内容图文
![C/C++ int32_t和printf格式:%d或%ld?](/upload/InfoBanner/zyjiaocheng/754/65fe3099029b473cb920e4aa58527a20.jpg)
参见英文答案 > printf format specifiers for uint32_t and size_t 4个
> How to print a int64_t type in C 6个
在某些平台中,int32_t(来自stdint.h)是long int,但在其他平台中,它可能是int.当我想使用printf时,如何确定应该使用哪种格式“%ld”或“%d”?
或者,也许,我应该强制将其转换为如下所示:
int32_t m;
m = 3;
printf ("%ld\n", (long)m);
但这种解决方案很乏味.有什么建议?
解决方法:
在C(自C99)中,inttypes.h包含扩展为固定宽度类型的格式说明符的宏.对于int32_t:
printf("%" PRId32 "\n", m);
该宏可能会扩展为“d”或“ld”.您可以使用常用的修饰符等,例如:
printf("%03" PRId32 "\n", m);
在C(从C 11开始),#include< inttypes.h>或#include< cinttypes>可以使用相同的工具.
显然,某些C实现要求用户在#include< inttypes.h>之前编写#define __STDC_FORMAT_MACROS 1,即使C标准指定不需要.
内容总结
以上是互联网集市为您收集整理的C/C++ int32_t和printf格式:%d或%ld?全部内容,希望文章能够帮你解决C/C++ int32_t和printf格式:%d或%ld?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。