gpt4 book ai didi

c - 非标准函数返回类型 : Fixing Splint parse error

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:14 25 4
gpt4 key购买 nike

我正在使用嵌入式系统 XC8 C 编译器(用于 PIC 微处理器)。允许以下内容:

bit foo(){
//...
}

但作为非标准 C,Splint 静态分析器给出以下错误:

Parse Error: Non-function declaration: bit : "--------------------------------------" int.

错误的文件/行是各自.h文件中的函数原型(prototype)。

我该如何解决这个问题,以便 Splint 可以分析文件的其余部分?我认为可能有两种方式:

  1. 我想我记得看到一个可以通过 CLI 传递给 Splint 的标志,它告诉它将给定的非标准类型替换为标准类型(例如,bit 到 unsigned char),但我似乎不能现在就找到它!

  2. 此外,也许还有另一种方法可以编写满足 ANSI-C 要求的 C 代码,同时还允许 XC8 将返回类型解释为 bit

进度:

我在论坛上找到了以下内容,但我找不到关于如何在 manual 中使用 -D 标志的信息:

To ignore a keyword, add -Dnonstandardkeyword= to make the preprocessor eliminate it

use -Dspecialtype=int to make a custom type parse as an int.

最佳答案

如果分析程序没有进行替换的选项,您当然可以使用预处理器进行替换。

有这样的东西:

#if defined RUNNING_SPLINT
#define bit unsigned char
#endif

例如您确保在任何地方都包含一个 header ,在此处输入代码并确保在 Splint 看到代码时定义预处理器符号 RUNNING_SPLINT。为此,它有一个 -D 标志。

关于c - 非标准函数返回类型 : Fixing Splint parse error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com