关于printf()long unsigned int和uint32_t的编译器警告

关于printf()long unsigned int和uint32_t的编译器警告,第1张

概述在我的C代码中,我正在打印“%lu”并为相应的字段提供uint32_t.但是,当我在GCC(版本4.2.4)中使用-Wall编译时,我收到以下警告:writeresults.c:16: warning: format '%4lu' expects type 'long unsigned int', but argument 2 has type `uint

在我的C代码中,我正在打印“%lu”并为相应的字段提供uint32_t.但是,当我在GCC(版本4.2.4)中使用-Wall编译时,我收到以下警告:

writeresults.c:16: warning: format '%4lu' expects type 'long unsigned int',but argument 2 has type `uint32_t'

在32位体系结构上,uint32_t和long unsigned int不是同一个东西吗?在不删除-Wall编译器开关或使用类型转换(如果是,如何)的情况下,是否可以避免此警告?

是的,我仍在使用32位计算机/ arch / OS /编译器(目前太差,无法提供新的64位硬件).谢谢!

最佳答案x86上的uint32_t使用GCC的linux只是unsigned int.所以使用fprintf(stream,“%4u”,…)(unsigned int)或者更好的是,fprintf(stream,“%4”PRIu32,…)(uint32_t的inttypes.h printf-string说明符).

后者肯定会消除编译器警告/错误,此外,还是跨平台的.

总结

以上是内存溢出为你收集整理的关于printf()long unsigned int和uint32_t的编译器警告全部内容,希望文章能够帮你解决关于printf()long unsigned int和uint32_t的编译器警告所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存