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