高质量编程之编译警告级别

本文探讨了如何通过设置编译警告级别至最高,以提高编程质量,减少错误并增强程序的可维护性。文章以VC++编译器为例,详细介绍了警告信息的等级、编译警告级别的设置方法,以及为何应该使用最高级别警告。通过实例解释了不同警告级别的意义,强调了理解和处理警告信息的重要性,以避免潜在的程序错误。
摘要由CSDN通过智能技术生成
 

前  言

作为程序员不但要会编程,还要编好程,即编写高质量的程序。评价程序质量的指标有很多(正确性、可靠性、有效性、可扩展性、可维护性……),用于保证软件质量的方法和技巧也非常多。本篇只讲述在编码阶段,如果通过设置编译警告级别来提高程序的质量,其目的是减少程序错误、提高程序的可维护性,进而提高软件开发效率。为了达到这个目的程序员需要:在编译程序时将编译警告级别调至最高级别!

下面主要以VC++编译器为例来说明如何设置编译警告的级别和为什么要将编译警告级别设置为最高。需要说明的是,由于本人也处于学习过程中,某些理解还不够透彻,还请读者朋友们多多指教!

1. 警告信息级别&编译警告级别

对经常编程的老手来说,编译警告级别的设置简直是小菜一碟。但我仍然坚持阐述一下如何设置,一方面是为新手指路,另外一方面是我觉得有相当一部分程序员(特别是学生)很少主动去改变程序的编译警告级别。

1.1.    警告信息级别

VC++定义了众多的编译警告消息(从C4001到C4999进行编号),并将这些警告消息根据其危害性分为4个等级:L1到L4(将编号在MSDN中查询就能看到某个警告信息的级别)。其中属于L1级别的警告危害性最大(出现这类警告的程序语句通常都意味着程序错误),L2级别的警告次之,以此类推。

1.2.    编译警告级别

编译警告级别是用来控制编译时产生警告消息数目多少的一种选项,也就是说在不同的编译警告级别下,编译器能报告的警告消息数目是不一样的。与警告信息的4个等级相对应,VC++编译器的编译警告级别包含了六个级别:None,Level 1,Level 2,Level 3,Level 4,Warning As Error。其中None表示不报告任何警告信息,Level 1表示只报告属于L1级别的警告,Level 2表示只报告L1和L2级别的警告,以此类推,Level 4能报告L1,L2,L3,L4级别的警告,而Warning As Error将所有警告信息作为编译错误来对待!需要说明的是:在VC++中,编译警告级别只对源文件起作用(包含头文件),而对目标文件(.OBJ)不起作用。

1.3.    如何指定编译警告级别

在利用VC++编译C/C++程序时,可以通过3种方式来指定编译警告级别:

1、  在继承开发环境中指定:

点击菜单栏中的“Project”菜单项,在弹出菜单中选择“Settings”,在打开的“ProjectSettings”对话框中选择C/C++标签,并在“Category”列表框中选择“General”,最后在“Warning level”列表框中选择一个编译警告级别(None,Level 1,Level 2,Level 3,Level 4),如果要选择Warnings as errors警告级别,就勾选“warning level”标签下方的“warnings as errors”复选框(见图1中的第二个红色矩形框),这时就可以把相应的警告级别的警告信息当做错误来对待。如下图所示:指定编译警告级别为Level 3,并将编译警告按编译错误对待(此时L1,L2,L3级别的警告信息均被报告,并被当做编译错误!)。值得注意的是图1中的第三个红色矩形框内的内容,它们其实对应到刚才所设定的编译警告级别:“/w3”与Level 3对应,“/wx”与warnings as errors对应,它们与在命令行指定编译警告相关。

图 1

2、  在命令行指定:

有的人喜欢在命令行进行源程序的编译,此时如何设置编译警告级别呢?其方法是在编译指令最后加上一个编译警告级别的参数,该参数可以是“/W 0”、“/W 1”、“/W 2”、“/W 3”、“/W 4”、“/W x”中的一种&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值