关于黄色警告

您所在的位置:网站首页 串口出现黄色的警告 关于黄色警告

关于黄色警告

2024-04-11 11:45| 来源: 网络整理| 查看: 265

关于黄色警告#

黄色警告分为由编译器产生的警告和由 clangd 的 clang-tidy 部分产生的警告.

黄色警告不会让代码无法编译, 但说明在编译器或 clang-tidy 看来, 你的代码写得可能不够好.

编译器产生的警告#

它的警告信息最后会有 clang(具体警告标识) 的字样. 部分开发者、尤其是库编写者为了让代码更好, 会选择启用 -Werror, 让所有编译器产生的警告提示为错误, 只要有任何警告或错误, 编译器就不会通过编译.

将“参数未使用”警告提示为错误#

抑制这类警告的方法#

根据编译器不同使用的方法可能有差异, 可以参考第三方单元测试框架的代码, 其中一般会有抑制警告相关的部分. 以 Clang 为例:

#pragma clang diagnostic push #pragma clang diagnostic ignored "-具体警告标识" /* 你的代码部分,其中产生了你要抑制的警告 */ #pragma clang diagnostic pop clang-tidy 产生的警告#

它的警告信息最后会有 clang-tidy(具体警告标识) 字样. 该警告标识是能点击的, 点击后会转到一个网页, 解释为什么有这个警告以及如何修复.

此外, clang-tidy 也提供部分警告的自动修复.

可自动修复的警告#

部分 clang-tidy 产生的警告, 其警告信息后面会有 (fix available), 提示可以自动修复.

一个一个按键修复#

在代码或错误信息中选择它, 将会弹出 蓝色 小灯泡样式 (黄色小灯泡为 clangd 提供的代码重构功能), 点击它即可进行修复.

你也可以选中后按快捷键 Ctrl + 句号 或 Command⌘ + 句号 进行, 需要按 两次.

可修复的“变量未初始化”警告#

一键修复整个源文件中的警告#

打开要修复的源文件, Ctrl + Shift + P 或 Command⌘ + Shift + P 打开命令菜单, 输入 task 找到 任务: 运行任务(Tasks: Run Task), 回车, 在出现的界面中选择我配置的 Clang-Tidy: fix current file, 回车.

这么做运行时间可能比较长, 但相比于按键修复, 它甚至能自动添加头文件包含保护.

根据文件路径自动添加的头文件包含保护, 如果头文件在 include 文件夹中, 则能产生更简单的路径.#

抑制这类警告的方法#

如果想要抑制 clang-tidy 产生的警告, 则

用 // NOLINT 可以抑制该行警告.

用 // NOLINTNEXTLINE 抑制下一行警告.

用 // NOLINTBEGIN 和 // NOLINTEND 抑制它们之间的警告.

这些都是抑制 clang-tidy 相关所有警告, 如果想要抑制一部分警告, 则在它们后面加上 (具体警告标识1, 具体警告标识2), 你也可以用 * 作为通配符.

// NOLINT(cppcoreguidelines-init-variables)

抑制 C++ 核心准则要求初始化变量的警告.

// NOLINT(cppcoreguidelines*)

抑制所有以 cppcoreguidelines 开头的警告, 即所有 C++ 核心准则相关警告.

// NOLINT(*avoid-c-arrays)

抑制所有以 avoid-c-arrays 结尾的警告.

// NOLINT(*explicit*)

抑制所有包含 explicit 的警告.

参考文献#

Clang-Tidy 诊断选项列表

Clang-Tidy 抑制诊断的方法



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3