Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 强类型定义静态检查器(unix)_C_Typedef_Typechecking - Fatal编程技术网

C 强类型定义静态检查器(unix)

C 强类型定义静态检查器(unix),c,typedef,typechecking,C,Typedef,Typechecking,是否有一个免费的工具(某种类型的静态检查器)可以对普通的C(不是C++)进行基于typedef的类型检查,并在Linux(或任何类型的免费Unix)上运行?我知道有一种商业产品:PC lint/FlexeLint。这正是我想要的,但它不是免费的,而且只是Windows。以下是其手册中的一个示例: typedef int Count; typedef int Bool; Count n; Bool stop; . . . n = stop ; // tool generates a warning

是否有一个免费的工具(某种类型的静态检查器)可以对普通的C(不是C++)进行基于typedef的类型检查,并在Linux(或任何类型的免费Unix)上运行?我知道有一种商业产品:PC lint/FlexeLint。这正是我想要的,但它不是免费的,而且只是Windows。以下是其手册中的一个示例:

typedef int Count;
typedef int Bool;
Count n;
Bool stop;
.
.
.
n = stop ; // tool generates a warning here
我已经读过这个和这个,我知道struct封装黑客,但那不是我想要的。我有一堆代码,我想检查它是否有这种特殊类型的错误。

怎么办?(我还没有检查它是否能满足你的要求。不过我怀疑它能做到。)

或者,使用C99的
stdbool.h
bool
类型怎么样?

“lint”最初是一个unix工具-是否不再包含在标准发行版中

如果不是的话,
gcc-wall
应该会给出大部分相同的警告。

谢谢你的快速回复:)我已经看过夹板了。这实际上是我检查的第一个工具。我在我的示例上以严格的模式运行它,从它的角度来看,一切都是干净的。。此外,我查看了它的手册,检查了“类型”部分中的每个标志,但没有找到任何对我有用的东西。关于bool,这只是$$$windoze PC lint手册中的示例。实际的代码处理整数和长整数,没有布尔。不,等效的工具是“splint”。Splint做不到C99,请看wilx的答案和评论。