欢迎来到天天文库
浏览记录
ID:48385774
大小:165.00 KB
页数:14页
时间:2019-07-04
《PC-LINT使用说明(newest).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PC-LINT使用说明1.概述22.如何安装PC-LINT33.LINT一个C文件33.1用命令行方式进行LINT43.2在SourceInsight中集成43.3LINT选项64.LINT一个工程下的多个C文件74.1为何要LINT多个C文件74.2如何LINT一个工程下的多个C文件74.3简单的LINT多个文件95.通过准则10第一类:不能出现的警告信息10第二类:需要确认的警告106.PC-LINT的配置11附一Options.lnt12附二Std.lnt14附三Env-si.lnt14LINT工具是一种软件质量保证工具,许多国外的大型专业软件公司,
2、如微软公司,都把它作为程序检查工具,在程序合入正试版本或交付测试之前一定要保证通过了LINT检查,他们要求软件工程师在使用LINT时要打开所有的编译开关,如果一定要关闭某些开关,那么要给出关闭这些开关的正当理由。可想而知,如果从我们编码后第一次编译程序时就使用LINT来检查程序,并且保证消除所有的LINT告警,我们就不会遇到象今天这么多的告警信息。即使在今天,我们如果能抽出一定的精力来消除程序中的LINT告警,以后再维持这种无告警状态就是很容易的了。我们程序质量的提高也是不言而喻的。PC-LINT是GIMPELSOFTWARE公司的产品,其中的内容是非常广
3、泛的,光是选项就有300多个,涉及到程序编译及语法使用中的方方面面。本篇培训材料旨在引导读者入门,学会PC-LINT的基本使用方法,起抛砖引玉的作用,能让读者从这里起步继续去研究如何娴熟地使用PC-LINT的各种选项,能让它充分为我们的开发工作服务。1.概述如果要给LINT工具下一个形象点的定义,那就是:一种更加严格的编译器。它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。请看下面的例子:1:2:char*report(intm,intn,char*p)3:{4:intresult;5
4、:char*temp;6:longnm;7:inti,k,kk;8:charname[11]="JoeJakeson";9:10:nm=n*m;11:temp=p==""?"null":p;12:for(i=0;i0)result=1;20:elseif(kk<0)result=-1;21:22:if(m==result)return(temp);23:elsereturn(name);24:}上面的代码用一般的编译器编译是
5、一段有效的代码,但是用PC-LINT编译就会有几个告警。首先第8行向name数组赋值时丢掉了nul字符,第10行的乘法精度会失准,第11行的比较有问题,第14行的变量k没有初始化,第15行的kk可能没有被初始化,第22行的result也有可能没有被初始化,第23行返回的是一个局部对象的地址。这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-LINT只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。下面就让我们看看如何安装使用PC-L
6、INT。2.如何安装PC-LINT安装PC-LINT比较烦琐,有很多选项。但我们提供的是一个拷贝版本,只要把pclint.zip展开到一个目录就可以了。建议大家都用c:lint作为安装目录。目录下有一些配置文件,可以根据情况修改:std.lnt:编译参数文件,里面已经放了一些引用头文件和宏定义,内容就是编译FLEX时的设置。大家可以根据需要修改。如果你不是用FLEX版本的代码,建议从vxWorks的配置文件中拷贝出你现在编译代码所使用的设置。options.lnt:编译选项文件。现在里面的内容是关闭一些告警。这些告警是我们认为要求过高的,允许忽略。注意,
7、原则上不允许开发人员随意在这个文件里增加要关闭的告警,以免PC-LINT检查过于放松。env-si.lnt:PC-LINT与SourceInsight集成时的环境参数设置。不需要修改。3.LINT一个C文件3.1用命令行方式进行LINT如果使用LIN.BAT批处理文件进行LINT,在LINT前要先看一下该批处理文件中的内容,里面包含了LINT-NT命令和命令选项,可以根据自己的要求来修改、增减选项。我们看到,在这个批命令中嵌套了一个std.lnt文件,在std.lnt文件中还嵌套了co.lnt、options.lnt和lib-stl.lnt文件,原则上*.
8、lnt文件是可以无限制嵌套,该类文件中一般都是了LINT的选项,可
此文档下载收益归作者所有