是否有免费工具(某种静态检查程序)为普通 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
我已经阅读了这个Enforce strong type checking in C (type strictness for typedefs)和Is there a good way to force type incompatibility in C?,我知道结构封装破解,但那是不我想要的东西。我有一堆代码,我想检查它是否存在这种特殊类型的错误。
答案 0 :(得分:1)
splint怎么样? (我没有检查它是否可以做你想要的。我怀疑它会不会。)
或者,使用C99的stdbool.h
和bool
类型怎么样?
答案 1 :(得分:0)
“lint”最初是一个unix工具 - 它不再包含在标准发行版中了吗?
如果没有,gcc -wall
应该提供大部分相同的警告。