用Lint查询代码错误

ZDNet软件频道 时间:2003-07-09 作者:翻译:javaresearch.org-Abel_Cao |  我要评论()
本文关键词:embedded
如果想用一个有效的工具察看C/C++源代码中的错误,遗漏,不确定的构建过程,以及移植问题等等,你应该来看看Lint。
本文译自Builder.com,未经许可请勿转载如果想用一个有效的工具察看C/C++源代码中的错误,遗漏,不确定的构建过程,以及移植问题等等,你应该来看看Lint。可以把Lint当成一个编译器,除了不产生代码之外,对于错误和警告的报告来说已经非常足够了。

通常,一个C/C++的编译器假设程序是正确的,而Lint恰恰相反,因此它优于编译器执行的一般性检查。Lint还可以贯穿多个文件来执行它的错误检查和代码分析,这是编译器做不到的。

下面是Lint能够检查的部分错误列表。如果你幸运的话,你的编译器也可以检查出其中的一些,但不会使全部。

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

这是两个流行的Lint 程序:

  • PC-lint是一个由Gimpel Software提供的支持C/C++的商用程序。
  • Splint (原来的 LCLint) 是一个GNU免费授权的 Lint程序,但是只支持C不支持C++.
Lint 的运行

运行 Lint 跟运行一个正常的编译器一样,只要把直接加入的makefile 中就可以了。在便以前后都可以运行它。

尽管在编译前运行它看起来更有意义,但有时在成功变以后执行更有价值。这意味着,编译器报告了例如键盘输入错误等各种错误,而Lint在已编译的代码上给与更多的检查。

当使用Lint的时候,不要为他报告的错误及告警信息的数目而惊慌失措。通过学习怎样控制Lint的输出你就不会着这样了。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134