前言
说明一下,这里是屏蔽警告,不是消除警告。目前我所知道的屏蔽警告的方式有四种,如果所说有什么问题或者还有其它的方式,麻烦在评论区@一下我。
一、屏蔽警告的目的
- 有强迫症,编译时出现太多警告有点受不了。
- 部分警告的存在对程序正常运行并没有影响,而且警告太多就比较容易忽视一些重要的信息。因此,可以选择忽视掉这类不重要信息。下面列出我直接屏蔽的警告(暂时只记得这一个)。
//函数定义后从未被调用警告
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
二、屏蔽方式
1. 切换链接器
1)菜单栏 -> Project -> Options for Target ‘Target 1’ -> Device,勾选“Use Extended Linker(LX51)…”
2)选择“LX51 Misc”,在“Misc control”输入框中写入“REMOVEUNUSED”
2. 设置编译器忽略警告(推荐)
(以警告16为例)
1)菜单栏 -> Project -> Options for Target ‘Target 1’
2)选择“BL51 Misc”,在“Disable Warning Numbers”输入框中写入待屏蔽的报警号。
3. 使用预处理指令
看到一篇文章说通过预处理指令的方式可以屏蔽一些特定的警告,即使用“#pramga …”,学习C的时候倒是用到过,但是KEIL里并没有尝试成功,这里附上原文链接。
https://blog.csdn.net/weixin_42747691/article/details/108534953
4. 选择警告等级
此屏蔽方式仍出自上方的链接,不过屏蔽方式有点不同,可能是版本不同导致的。另外,警告等级越高,可检测警告越多,选择“Warninglevel 0(disable)”会屏蔽所有警告。
个人觉得,部分警告还是有存在必要的,所以这种方式最好不要使用,发出来只是为了避坑。
菜单栏 -> Project -> Options for Target 'Target 1 ’ -> C51 -> Warning