You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MinGW GCC识别size_t对应的%zu格式说明符?

一图胜千言:
微软数十年来一直辜负C语言开发者

我知道怎么规避这个问题,但我要怎么从微软层面彻底解决它,让我连警告都收不到?

补充说明

  • 和评论区其他人指出的内容相反,这个问题是微软系统特有的。我可以在Linux设备上运行完全相同的代码,在相同版本的VsCode中使用相同的配置(tasks.json和properties.json)、相同版本的gcc,不会出现这些编译器警告。
  • 我使用的C标准是c17。
  • 哪怕在2021年8月已完全更新的Windows 10系统、搭配最新的mingw-64工具链(具体是本次使用的gcc 8.1.0版本)的环境下,在printf、scanf这类依赖格式说明符的函数中使用%z甚至%ll这类格式说明符,都会触发编译器格式警告。
  • 图中显示的“编译器错误”实际上是格式警告被当做错误处理了,编译器原文为:[-Werror=format=]。
  • 感谢@the busybee,你尝试解决了这个问题,这确实是个不错的规避方案,但是会影响开发兼容性。

后续补充

在遇到格式不兼容问题引发实际非预期bug,同时在Windows上使用GDB高级功能的体验也非常糟糕之后,我最终决定彻底放弃在Windows上使用GNU工具链。现在我在Windows设备上做C语言跨平台开发时改用Clang,到目前为止我对这个决定完全满意,感谢所有花时间帮忙的人。

内容的提问来源于stack exchange,提问作者user12566332

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:36:02