巧用 STM32CubeIDE 之编译警告

1. 前言

编译警告对于工程师们来说,是再常见不过的了。对于严谨的工程师们来说,任何warning 都是不可忽视的。

2. 巧妙使用 warning

在 STM32CubeIDE 中,我们可以通过主动 warning(甚至 error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。

例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本,那么我们可以在代码中,通过“#error ”来强调必须要修改的信息,通过“#warning”来备注需要注意的信息。具体代码如图 1:

图1.巧用 warning – 在代码中主动添加产生 warning 的代码
在这里插入图片描述
这样,当客户编译工程时,会出现 error 和 warning,见图 2,只有将“#error”和“#warning”两行分别注释掉,才可以分别消除这两项编译信息,以此达到警示客户的目的。

图2.巧用 warning – IDE 编译时会主动产生 warning
在这里插入图片描述

2.1. 主动屏蔽特定的 warning

在有些场景下,我们还可以在特定的代码或者文件作用域内,主动屏蔽特定的warning。

例如,工程中写了一个测试函数“void MyTestFunction(void)”,但是在工程中暂时没有被调用,直接编译会得到“Wunused-function”的 warning。

但是如果在代码中添加这样的语句:

#pragma GCC diagnostic ignored "-Wunused-function"
/*此区间内,如果出现函数仅申明,但是没有被调用时,编译不产生warning*/
void MyTestFunction(void)
{}
#pragma GCC diagnostic pop

因为我们配置了“-Wunused-function”,那么在编译时,即使 MyTestFunction 没有被调用,编译也不产生 warning。

我们还可以在 STM32CubeIDE 中,通过“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 编译器文档,从而发现更多的 warning 选项,根据需要主动屏蔽更多的 warning。见图 3 :

图3.GCC 的 warning 选项(部分节选)
在这里插入图片描述

3. 小结

事实上,在编译项目时,warning 和 error 同样重要,部分隐蔽的问题可能就和warning 相关。当我们对工程代码和编译器有了更深层次的了解后,可以巧妙的使用和屏蔽 warning,帮我们更好地管理项目。

参考文献

在这里插入图片描述

文档中所用到的工具及版本

STM32CubeIDE V1.8.0


本文档参考ST官方的《【应用笔记】LAT1254+巧用STM32CubeIDE之编译警告》文档。
参考下载地址:https://download.csdn.net/download/u014319604/89085981

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值