关于printf()long unsigned int和uint32_t的编译器警告
发布时间:2020-12-13 22:29:20 所属栏目:Windows 来源:网络整理
导读:在我的C代码中,我正在打
在我的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说明符).
后者肯定会消除编译器警告/错误,此外,还是跨平台的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Window Service,WCF服务应用程序和ASP.NET Web服
- Chromium被用于Microsoft Edge与ChakraCore的未来
- Windows EventLog:操作速度有多快?
- windows-server-2008 – 单个Hyper-V主机上的两个
- 如何在Windows 8.1 Update 2操作系统中使用Power
- 在Windows平台搭建C语言开发环境
- .net – 我可以让我的服务让Windows无法入睡吗?
- windows-server-2008 – Windows Web Server 200
- dos – 世界上什么是Zen Simulator?
- 系统降级 – Windows会随着时间的推移而减速吗?
热点阅读