使用 GCC 有选择地删除警告消息

2023-12-08

这段代码:

Int32 status;
printf("status: %x", status)

给我以下警告:

jpegthread.c:157: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'Int32'

我知道我可以通过转换类型来摆脱它,但是是否可以使用 GCC 编译器标志来摆脱该特定类型的警告,并且仍然使用-Wall?


如果您需要该代码可移植,那么您应该将参数转换为无符号整数,因为在某些平台上 int 类型的大小可能与 Int32 不同。

要回答有关在 GCC 中禁用特定警告的问题,您可以在 GCC 中启用特定警告:-Wxxxx并禁用它们-Wno-xxxx.

来自GCC 警告选项:

您可以请求许多以选项开头的特定警告-W, 例如-Wimplicit请求有关隐式声明的警告。这些特定警告选项中的每一个也都以否定形式开头-Wno-关闭警告;例如,-Wno-implicit。本手册仅列出两种形式中的一种,以非默认形式为准。

对于您的情况,有问题的警告是-Wformat

-Wformat

检查对 printf 和 scanf 等的调用,以确保提供的参数具有适合指定格式字符串的类型,并且格式字符串中指定的转换有意义。这包括标准函数以及由格式属性指定的其他函数(请参阅功能属性),在 printf、scanf、strftime 和 strfmon(一个X/Open扩展(不在 C 标准中)系列(或其他特定于目标的系列)。在没有指定格式属性的情况下检查哪些函数取决于所选的标准版本,并且对没有指定属性的函数的这种检查被禁用-ffreestanding or -fno-builtin.

这些格式根据 GNU libc 版本 2.2 支持的格式功能进行检查。其中包括所有 ISO C90 和 C99 功能,以及来自 Single Unix 规范和一些 BSD 和 GNU 扩展的功能。其他库实现可能不支持所有这些功能; GCC 不支持对超出特定库限制的功能发出警告。然而,如果-pedantic与使用-Wformat,将给出有关不在所选标准版本中的格式功能的警告(但不适用于 strfmon 格式,因为这些格式不在 C 标准的任何版本中)。请参阅控制 C 方言的选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GCC 有选择地删除警告消息 的相关文章

随机推荐

  • 如何将 HTML5 地理位置数据保存到 python Django admin?

    当用户使用地理定位网站时 是否可以将 javascript html5 地理定位纬度和经度保存到 django admin 网页的目标是保存用户的经度和纬度值 以便稍后用户再次登录时可以访问数据 我发现几年前在 stackoverflow
  • 复选框首选项 onClick()

    我想实现一个由两部分组成的偏好屏幕 如果单击复选框 第一个类别应锁定 第二个类别应解锁 如果不是 则反转 现在我发现只有当我转到上一个活动然后转到新的 sharedPreferences 时它才有效 我应该覆盖哪个侦听器以及如何覆盖 你可以
  • MySql 中获取资源 id #3 错误

    我运行了这段代码 出现了一个 Resource id 3 错误 它应该显示完整的电影表 mysql connect localhost root password or die mysql error mysql select db tre
  • 将 Boost 编译为静态通用二进制库

    我想要一个 Boost 的静态通用二进制库 最好是最新的稳定版本 即 1 43 0 或更高版本 我发现许多谷歌搜索结果都有类似的问题和可能的解决方案 然而 其中大多数似乎已经过时了 而且它们都没有真正起作用 现在 我正在努力 sudo bj
  • PHP 中的多数组排序

    有人知道如何在 PHP 中按键 日期 对这个数组进行排序吗 Array 2011 02 16 gt Array date gt 2011 02 16 num gt 2 2011 02 11 gt Array date gt 2011 02
  • 我应该使用 Java 命名约定吗?

    我被分配到一个大型项目 该项目将用 Java 完成 并由团队中的一些程序员查看 我希望代码可读且易于理解 因此我希望命名约定适合每个阅读它的人 我想知道是否必须使用 Java 命名约定才能让其他人自然地查看和理解它 我总是使用一种我自己的命
  • 无法使用 HMAC SHA256 从示例中重现 AWS 签名

    我正在关注这个例子 http docs aws amazon com AmazonS3 latest API sigv4 query string auth html 并尝试重现他们所说的 64 个字符的签名字符串 aeeed9bbccd4
  • 具有多个路由键的 Spring Boot 流绑定队列

    我需要将单个队列与多个路由键绑定 我在 application properties 中有配置 spring cloud stream bindings some channel1 destination exch spring cloud
  • Android:在现实生活中 getLastKnownLocation(LocationManager.NETWORK_PROVIDER) 返回 null 的频率是多少?

    Android 用户是否有机会重置 NetworkProvider 使位置为空 我想到了一个想法 即只有在第一次启动设备后才能将该位置设置为空 但谷歌也会立即检查位置以征求我的意见 当然 我正在为这种罕见的情况实现默认位置 我只是想知道这种
  • python - 正则表达式为什么“findall”什么也没找到,但“search”有效? [复制]

    这个问题在这里已经有答案了 gt gt gt reg re compile r d 1 3 d 3 gt gt gt str 42 gt gt gt reg search str group 42 gt gt gt reg findall
  • Oracle LISTAGG() 用于查询使用

    所以我试图利用列表 函数来简单地构建一个逗号分隔列表以在基础查询中使用 列表生成工作正常 我只是应用了一个用于调试目的的输出 我可以在其中看到我的列表 因为它应该是 价值观 AB AZ BC CA CT DC FL FO GA IL KS
  • 我的过滤器无法工作,尽管它们应该工作相同

    我正在尝试制作西蒙说的游戏 我有 4 个不同颜色的方块 但为了美观 我在每个框周围留出了 10 个像素的边距 现在我正在尝试获取鼠标位置并查看当您单击哪个框时是否会进入 但它不起作用 主要内容是这样的 def findColor mouse
  • jQuery移动面板打开滚动页面到顶部,如何改变这个?

    因此 我正在开发一个 jQuery 手机间隙应用程序 我注意到每次打开面板时 主页都会自动滚动到顶部 我希望当您打开面板时页面保留在原处 经过一番谷歌搜索后 我唯一发现的是 github这并不令人鼓舞 这是 当菜单面板在 jquery mo
  • 在 C# 中创建 IStream 对象

    我正在编写一个项目并与另一方 DLL 一起工作 他们的 DLL 中的函数想要一个 IStream 对象来保存结果 但我不明白如何创建一个 IStream 对象 谁能帮我解决我的问题吗 您不创建 IStream 对象 因为显然它是一个接口 您
  • cleartool:如何按时间顺序列出流中的所有标签?

    我想按时间顺序列出应用于流的所有标签 理想情况下 我希望每个标签都具有如下所示的内容
  • 如何在测试时正确模拟 useSelector 挂钩以返回正确的值?

    我有一个在渲染时多次调用 useSelector 的函数 在模拟选择器时 我使用了 jest spyOn Redux useSelector mockReturnValueOnce data mockReturnValueOnce more
  • spring webmvc映射jsp(不带控制器)

    我正在尝试使用 Spring 3 web mvc 我有一个简单的页面链接 你知道 a href xyz thing 不知何故 spring mvc 不喜欢这样 eer 好吧 我的 spring 配置没有按照我希望的方式工作 我尝试使用 De
  • PHP数组循环并创建多维数组

    我有一个关联多维数组 如下所示 data array data Array 0 gt Array class gt 1styear branch gt IT Exam gt SEM1 student name gt Alex Bio gt
  • 如何从主机获取 Docker 容器的 IP 地址

    创建新容器后 是否可以运行命令来从主机直接获取容器的 IP 地址 基本上 一旦 Docker 创建了容器 我就想滚动自己的代码部署和容器配置脚本 此解决方案仅在容器与单个网络连接时才有效 这 format的选项inspect来救援 现代 D
  • 使用 GCC 有选择地删除警告消息

    这段代码 Int32 status printf status x status 给我以下警告 jpegthread c 157 warning format x expects type unsigned int but argument