词条 | lint |
释义 | 基本介绍lint是最著名的C语言工具之一,一般由UNIX系统提供。与大多数C语言编译器相比,lint可以对程序进行更加广泛的错误分析,是一种更加严密的编译工具。最初,lint这个工具用来扫描C源文件并对源程序中不可移植的代码提出警告。但是现在大多数lint实用程序已经变得更加严密,它不但可以检查出可移植性问题,而且可以检查出那些虽然可移植并且完全合乎语法但却很可能是错误的特性。 基本功能lint检查C程序中潜在的错误,包括(但不限于)可疑的类型组合、未使用的变量、不可达的代码以及不可移植的代码。lint会产生一系列程序员有必要从头到尾仔细阅读的诊断信息。使用lint的好处是,它可以检查出被编译器漏掉的错误。 系统版本UNIX系统 在UNIX系统中,可自动获得lint,它是一个标准的UNIX工具。 Windows 在Windows系统中,从第三方获得的lint工具的名称是PC lint。 PC lintPC Lint简介C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应也使得代码编写具有很大的随意性,另外C/C++编译器不进行强制类型检查,也不做任何边界检查,这就增加了代码中存在隐患的可能性。如果能够在代码提交测试之前发现这些潜在的错误,就能够极大地减轻测试人员的压力,减少软件项目的除错成本,可是传统的C/C++编译器对此已经无能为力,这个任务只能由专用的代码检查工具完成。 PC-Lint是GIMPEL SOFTWARE公司开发的C/C++软件代码静态分析工具,它的全称是PC-Lint/FlexeLint for C/C++,PC-Lint能够在Windows、MS-DOS和OS/2平台上使用,以二进制可执行文件的形式发布,而FlexeLint运行于其它平台,以源代码的形式发布。PC-lint在全球拥有广泛的客户群,许多大型的软件开发组织都把PC-Lint检查作为代码走查的第一道工序。PC-Lint不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针以及冗余的代码,还能够有效地帮你提出许多程序在空间利用、运行效率上的改进点。 PC lint作用PC-lint可以检测单个文件,也可以从整个项目的角度来检测问题,因为C语言编译器固有的单个编译,这些问题在编译器环境下很难被检测,而PC-Lint在检查当前文件的同时还会检查所有与之相关的文件,可想而知,它会对我们有很大的帮助。 PC-lint支持几乎所有流行的编辑环境和编译器,比如BorlandC++从1.x到5.x各个版本、Borland C++ Build、GCC、VC、watcom C/C++、Source insight、intel C/C++等等,也支持16/32/64的平台环境。支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。PC Lint代码检查功能PC Lint告警消息分类 错误说明 C C++ 告警级别
语法错误 200-299 致命错误 300-399 告警 400-699 1400-1699 2 消息 700-800 1700-1899 3 可选信息 900-999 1900-1999 4 代码检查告警级别 w0 不产生信息(除了遇到致命的错误) w1 只生成错误信息-- 没有告警信息和其它提示信息 w2 只有错误和告警信息 w3 生成错误、告警和其它提示信息(这是默认设置) w4 生成所有信息 函数库头文件的告警级别 wlib(0) 不生成任何库信息 wlib(1) 只生成错误信息(当处理库的源代码时) wlib(2) 生成错误和告警信息 wlib(3) 生成错误、告警和其它信息(这是默认设置) wlib(4) 产生所有信息 一般代码检查功能 PC Lint能检查出代码的语法错误和可能引起程序异常执行的逻辑告警。但它更侧重于后者的检查,因为这类问题更容易被人忽略(前者通过平台编译器去发现)。所以它的代码检查功能通常表现在下面几方面: 强类型检查:强类型检查选项“-strong”和它的辅助(补充)选项“-index”可以对typedef定义的数据类型进行强类型检查,以保证只有相同类型之间的变量才能互相赋值 变量值跟踪:包括对变量值初始化,变量值,函数内变量这些情况进行跟踪,发现其中不符合语法规范的告警 赋值顺序检查:检查当一个表达式的值依赖于赋值的顺序时,是否会出问题 弱定义检查:检查当宏定义、typedef名字、声明、结构、联合和枚举类型这些东西可能在模块中被过多定义且不被使用的情况。 格式检查:检查printf和scanf(及其家族)中的格式冲突告警 缩进检查:检查代码中的缩进问题是为避免出现代码结构不良或者大括号的遗漏等问题 const变量检查 volatile变量检查 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。