Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

4.1 基本和增强 lint 模式

lint 程序有两种运算模式:

  • 基本(缺省模式)

  • 高级,提供代码的其他详细分析

在基本模式和增强模式下,lint 通过标记文件(包括已使用的任何库)间定义和用法中的不一致,来补偿 C 中的单独编译和独立编译。在大型项目环境中,同一函数可能被不同程序员用在数百个单独的代码模块中,在这种情况下,lint 有助于发现借助其他方式很难发现的错误。例如,如果调用函数时使用的参数比所需的参数少一个,该函数在堆栈中查找该调用从未推的值,结果在一个条件下正确,在另一个条件下不正确,具体取决于内存中该堆栈位置发生的情况。通过标识类似的依赖性以及对计算机体系结构的依赖性,lint 可提高运行于您的计算机或其他计算机上的代码的可靠性。

在增强模式下,lint 提供比在基本模式下更详细的报告。在基本模式下,lint 的功能包括:

  • 源程序的结构和流分析

  • 常量传播和常量表达式求值

  • 控制流和数据流的分析

  • 数据类型使用的分析

在增强模式下,lint 可以检测以下问题:

  • 未使用的 #include 指令、变量和过程

  • 内存释放之后内存的使用

  • 未使用的赋值

  • 初始化之前使用变量值

  • 未分配内存的释放

  • 写入常量数据段时使用指针

  • 不等效的宏重新定义

  • 无法执行到的代码

  • 符合联合中值类型的用法

  • 实际参数的隐式强制类型转换。