1 安装splint
sudo apt-get install splint
2 测试代码main.c如下
#include <stdio.h>
// 全局变量,所有函数公用的
int global = 0;
// 求长方形的面积
int rect(int a, int b)
{
static int count = 0;
count++;
global++;
int s = a * b;
return s;
}
// 求正方形的面积
int quadrate(int a)
{
static int count = 0;
count++;
global++;
int s = rect(a, a);
return s;
}
int main()
{
int a = 3;
int b = 4;
int *pa = &a;
int *pb = &b;
int *pglobal = &global;
int (*pquadrate)(int a) = &quadrate; // 定义了函数指针
int s = (*pquadrate)(a); // int s=quadrate(a);
printf("%d\n", s);
return 0;
}
3 使用splint检查源代码main.c
splint main.c
4 结果截图如下
5 检测结果
- 变量声明了但是没有使用,删掉即可
- 变量与函数是exported(输出,出口) ,但是外面没有用, 加 static关键字即可
6 resolved解决了