前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈警告即错误

浅谈警告即错误

作者头像
Qt君
发布2019-07-15 16:30:28
7700
发布2019-07-15 16:30:28
举报
文章被收录于专栏:跟Qt君学编程

编译警告给人的感觉是让人注意这个问题。更有甚者认为,编译警告只不过是给过分小心的人看。事实上为什么会有警告这一个问题本身值得我们去思考?

  昨天,新来不久的同事调试一个准备上线的功能,可是怎么也调试不出来。当时刚好在喝水,看到他几百个警告。就和他说你还是处理一下编译警告吧。他一脸焦虑地说:没空弄啊?!功能快要上线了,来帮我看看。他还说,如果是很严重的警告,会导致编译错误,能编译过就可以了。

  看着有些无奈,对此非常地不认同。看着他焦虑的表情,先解决问题先。 浏览代码看到有一条警告进入法眼,是这样的use '==' to turn this assignment into an equality comparison.,意思是使用'=='将该赋值转换为相等比较。找到相应的代码:

代码语言:javascript
复制
if (isEmpty = true) {
...
}

  同事看了看代码,我知道问题出在哪里了。今晚大吉大利,请你吃鸡腿。既然解决问题了,你也应该解决一下你那些编译警告,这些警告里面可能隐藏着很多bug。

  比如呢?同事一脸好学的样子。看到你程序里面有很多变量未使用的警告,你应该清理一下它。因为变量可能真的没使用,又可能是你错误使用了其他变量导致。后者带来的后果可能让你的程序刚好能运行,但某些情况下可能出现致命的错误。

  正当我转身准备下班的时候,他又问,那我调一下编译警告提升为编译错误这样可以吗?

  可以是可以,但是要分情况。如果你是新写的程序你可以这样做,如果是已经写了一大部分的项目,如果你这样做可能会造成颠覆性的后果,导致难以控制。因为编译器能轻易地将编译警告变为编译错误,可是你不能轻易地解决它。

  那我应该怎么做?   一步一步来吧。新加的警告你就在编写的时候解决它,而旧的警告也要谨慎地解决。对于GCC编译器你可以使用-Werror参数来让警告不能忽略。让过是MSVC编译器,你可以改变项目的设置。另外一般IDE都有设置怎么将编译警告作为编译错误的操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档