我正在使用嵌入式系统 XC8 C 编译器(用于 PIC 微处理器)。以下是允许的:
bit foo(){
//...
}
但作为非标准 C,Splint 静态分析器会给出以下错误:
解析错误:非函数声明:位:“--------------------------”诠释。
错误的文件/行是相应 .h 文件中的函数原型。
我该如何解决这个问题,以便 Splint 可以分析其余文件?我认为可能有两种方法:
我想我记得看到一个可以通过 CLI 传递给 Splint 的标志,它告诉它将给定的非标准类型替换为标准类型(例如位到无符号字符),但我现在似乎根本找不到它!
此外,也许还有另一种方法可以编写满足 ANSI-C 要求的 c 代码,同时仍然允许 XC8 将返回类型解释为
bit
?
进步:
我在论坛上找到了以下内容,但在手册中找不到有关如何使用 -D 标志的信息:
要忽略关键字,请添加 -Dnonstandardkeyword= 以使预处理器将其消除
和
使用 -Dspecialtype=int 将自定义类型解析为 int。