gpt4 book ai didi

c - Windows 64x 下 GCC 中的 printf 和 %llx

转载 作者:太空狗 更新时间:2023-10-29 16:38:55 25 4
gpt4 key购买 nike

我正在尝试去除程序中的虚假警告。在windows 64下(linux下没有这个警告)这个声明:

printf("%llu",UINT64_MAX);

生成以下警告:

warning: unknown conversion type character 'l' in format [-Wformat]|

输出似乎是正确的,警告不应该出现。我能找到的最相关的 gcc 相关帖子是 2008 年的错误报告 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768

如果我根据那个理解正确,这个警告源于这样一个事实,即在引擎盖下 gcc 调用不符合 C99 的 MSVC printf,并且无法理解 printf 中的 unsigned long long 格式。在同一页面上,建议的解决方案是使用名为 gnu_printf 的东西。我试着用谷歌搜索,但没有找到要包含的标题。

所以问题是应该如何处理才能便携?我只想以正确且毫不马虎的方式摆脱警告。

最佳答案

我猜您可能已经知道,来自 http://comments.gmane.org/gmane.comp.gnu.mingw.w64.general/4670(注意:无效链接;参见 Internet Archive's copy ),

the issue is that formatter-width specifier %ll isn't supported for all msvcrt-DLL versions, therefore gcc warns about its use. The variant for specifying 64-bit integer-scalar-width in formatter for msvcrt in a backward-compatible way is by using %I64.

关于c - Windows 64x 下 GCC 中的 printf 和 %llx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10763854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com