开发环境只会指出语法错误,但是有的代码尽管语法是正确的,但是不”好”,例如不符合Effective C++或More Effective C++的条款,这个时候我们可以借助静态检查工具对代码进行更严格的检查。

这其中的经典是PC-Lint,它是GIMPEL SOFTWARE公司的产品。

PC-Lint是一种静态代码检测工具,它可以检查出那些虽然xx合乎语法要求,但很可能存在潜在的、不易发现的错误;PC-lint可以在检查当前文件的同时检查所有与之相关的文件,从而从整个项目的角度来检测问题;PC-lint支持几乎所有流行的编辑环境和编译器,比如Borland C++、GCC、VC,VC.net、Source insight等等,支持16/32/64的平台环境;PC-lint支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。

使用PC-Lint的一般步骤为:

(1) 安装与设置PC-Lint

如果在安装过程中选定了使用某个开发环境,安装程序会在你安装的目录下生成一个env-xxx.lnt的文件,这个文件在编译环境整个PC-Lint的时候要用到。

(2) 整合PC-Lint到选定的编译环境

在UltraEditor中集成PC-Lint的步骤为:

a.选取 Menu | Advanced | Tool Configuration

b.点按”Insert”

c.在command line:中填写:c:\lint\lint-nt c:\lint\std.lnt %f

d.在Menu Item中填写:PC-LINT

e.在Command Output中选择: (x) Output to List Box 和 (x) Capture Output

f.点按”OK”

在VC++ 6.0中集成PC-Lint的步骤为:

a.选取 menu | tools | customize…..

b.选取 Tools Tab:

c.点按主对话框上方的虚线小方框 New a tool item

d.入 name: PC-LINT

f. Command: c:\lint\lint-nt.exe

g. Arguments: c:\lint\std.lnt $(FilePath)

h.选择(x) Use Output Window

i.Close

完成后,在VC++ 6.0 tools菜单下就会有一项PC-LINT选项。

(3)检查单个或多个C/C++文件

PC-Lint整合到Visual C++、SourceInsight、Ultra Editor等软件中后,便可对代码进行更加严格的检查。例如下面的代码没有语法错误,VC编译不会提示错误或警告:

但是getString返回的是局部变量的地址,函数返回后,char str[100]的空间已经被自动释放,虽然语法无错,但是可能导致潜在的错误,PC-Lint会检测出这里的”错误”!

{zh1},我们有必要指出的是,PC-Lint是一种工具软件,而”Lint”则是软件开发技术发展的一个专有名词,指的是比语法”正确”更严厉的语法”合理”检查。”Lint”除了可以统一代码的风格,提高代码质量外,还可减少潜在的bug,这个名词的重要性几乎要与”预处理”、”编译”、”连接”并驾齐驱!目前有的软件公司明文规定一定要对代码进行”Lint”,这实在是颇富远见的。

下载地址