代码静态检查工具PC-Lint运用实践

发表于:2012-10-09 11:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:spinsoft    来源:51Testing软件测试网采编

  任何事物都有两面性,PC-Lint也不例外。它也会经常有一些误报,为了消除这些误报,我们不得不使用一些PC-Lint选项来屏蔽这些告警。常用选项如下:

  ● -i选项

  这个选项主要是用来设置include路径的

  如:-iD:\VC6\VC98\Include

  ● -e#选项

  这个选项主要是用来屏蔽告警号为#的告警

  如:-e818 表示不显示告警号为818的告警

  ● -esym(#, 符号名)选项

  这个选项主要是用来屏蔽告警号为#的某个符号的告警,

  如-esym(39, std)

  ● -emacro(#,宏名称)选项

  这个选项主要是用来屏蔽告警号为#的某个宏的告警

  其中,0~2级告警都不能使用-e选项进行屏蔽,只能使用-esym,-emacro,-sem之类的选项进行屏蔽;3级告警要根据具体情况,有些可以使用-e选项进行屏蔽,有些不可以。

  通过对PC-Lint告警的分析,我们总结出一些C++编写规范。

  1、过分依赖C表达式中的运算符优先规则; 例如:else if (m_nSize+STEP_KEYCOUNT > m_nMaxCount), 最好能加个括号。

  2、变量定义了,却没什么作用。

  3、在构造函数中尽量不要分配内存,否则会有告警error 1732。

  4、函数可以申明为const类型,通常都是一些没有修改成员变量的函数会有这类告警error 1762。

  5、成员变量使用前没有初始化。

  6、类指针成员没有释放,尤其是异常返回的时候,忘记释放指针成员,这很容易引起内存泄漏。

  7、在使用指针成员时,没有判断是否为空指针。

  8、设计阶段,就想好接口变量类型,减少类型转换的频率。

  9、判断条件有问题,这就是逻辑错误。运用PC-lint也很难检查出来,需要开发人员特别小心。

  总之,PC-lint是个简单易用的代码静态检查工具。它可以帮助开发人员,检查出语法逻辑上的错误,还能够提出程序在空间利用、运行效率上的改进点。它也可以帮助测试人员,检查源码是否符合C/C++代码编写规范,是否有语法错误,如不匹配的参数、未使用过的变量、空指针的引用等。如果测试人员水平高的话,也可以找出代码逻辑性、合理性上的问题,如:不适当的循环嵌套和分支嵌套、不允许的递归和可疑的计算等;还可以利用静态检查的结果做进一步的查错,且能为测试用例的编写提供些许的指导。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号