lint的基本概念

最近在捣拾组件化的一些工作,把工程项目的三方引用和模块,通过cocoapods管理起来

用到了这么一行命令 pod spec lint 或者 pod lib lint

就很好奇命令的含义,简单查阅,这是pod命令,对于podspec文件的一种静态代码分析

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

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

1.它可以检查出被编译器漏掉的错误;

2.可以关联很多文件进行错误的检查和代码分析,具有较强大灵活性.

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

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