PClint使用心得

来源:互联网 发布:网络歌曲无可 编辑:程序博客网 时间:2024/04/30 04:22

 PC-LINT是GIMPEL SOFTWARE公司的产品,其中的内容是非常广泛的,光是选项就有30 0多个,涉及到程序编译及语法使用中的方方面面。本篇培训材料旨在引导读者入门,学会PC-LINT的基本使用方法,起抛砖引玉的作用,能让读者从这里起步继续去研究如何娴熟地使用PC-LINT的各种选项,能让它充分为我们的开发工作服务。
 
  1.概述如果要给LINT工具下一个形象点的定义,那就是:一种更加严格的编译器。它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。请看下面的例子:   
    char *report( int m, int n, char *p )
  {
         int result;
         char *temp;long nm;
         int i, k, kk;
         char name[11] = "Joe Jakeson";
         nm = n * m;temp = p == "" ? "null" : p;
         for( i = 0; i 13: { k++;kk = i;}
         if( k== 1 ) result = nm;
         else if( kk > 0 ) result = 1;
         else if( kk < 0 ) result = -1;
         if( m == result ) return( temp );
         else return( name );
  }

  
  上面的代码用一般的编译器编译是一段有效的代码,但是用PC-LINT编译就会有几个告警。首先第8行向name数组赋值时丢掉了nul字符,第10行的乘法精度会失准,第11行的比较有问题,第14行的变量k没有初始化,第15行的kk可能没有被初始化,第22行的result也有可能没有被初始化,第23行返回的是一个局部对象的地址。这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-LINT只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。

原创粉丝点击