lint -- 静态代码分析工具


lint是最著名的C语言工具之一,是由贝尔实验室SteveJohnson于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供。

介绍

与大多数C语言编译器相比,lint可以对程序进行更加广泛的错误分析,是一种更加严密的编译工具。

最初,lint这个工具用来扫描C源文件并对源程序中不可移植的代码提出警告。
现在大多数lint实用程序已经变得更加严密,它不但可以检查出可移植性问题,而且可以检查出那些虽然可移植并且完全合乎语法但却很可能是错误的特性。

随着历史的推移,Lint后来形成了一系列的工具,包括PC-lint/FlexeLint(Gimpel),LintPlus(Cleanscape)以及Splint。

基本功能

lint检查C程序中潜在的错误,包括(但不限于)可疑的类型组合、未使用的变量、不可达的代码以及不可移植的代码。
lint会产生一系列程序员有必要从头到尾仔细阅读的诊断信息。
使用lint的好处是:

  • 1.它可以检查出被编译器漏掉的错误;
  • 2.可以关联很多文件进行错误的检查和代码分析,具有较强大灵活性

lint可以检查的错误类型大体如下:

  • 可能的空指针
  • 在释放内存后使用了指向该内存的指针
  • 赋值次序问题
  • 拼写错误
  • 被0除
  • 失败的case语句(遗漏了break语句)
  • 不可移植的代码(依赖了特定的机器实现)
  • 宏参数没有使用圆括号
  • 符号的丢失
  • 异常的表达式
  • 变量没有初始化
  • 可疑的判断语句(例如,if(x=0))
  • printf/scanf的格式检查

版权声明:本文为qq_39273039原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。