gpt4 book ai didi

c - 夹板在包含 complex.h 的代码上失败

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:23 24 4
gpt4 key购买 nike

我正在尝试在包含标准 C 库中的 complex.h 的 C 源代码上运行 splint 以支持复数运算。

不幸的是,splint 失败并出现以下错误。

Splint 3.1.2 --- 03 May 2009

/usr/include/bits/cmathcalls.h:54:31: Parse Error: Non-function declaration: _Complex : extern double. (For help on parse errors, see splint -help parseerrors.) *** Cannot continue.

问题的谷歌搜索只导致 this message在 split-discuss 邮件列表中(仍未回复)。

有什么想法吗?

更新

这是一个非常简单的失败源示例:

#include <complex.h>

int main() {
complex x = 2 + 8i;
x = x + 1;
}

尝试重新定义不受支持的 _Complex C99 关键字会导致复数的虚部出现错误(我想这并不奇怪)。

lsc@deepthought:~$ splint-D_Complex=double temp.c  
Splint 3.1.2 --- 03 May 2009

temp.c:4:20: Parse Error. (For help on
parse errors, see splint -help
parseerrors.)
*** Cannot continue.

最佳答案

我不是夹板使用者,所以请对以下内容持保留态度...

_Complex 关键字是在 C99 中添加的,夹板常见问题解答对 C99 有这样的说法(http://www.splint.org/faq.html#quest15):

However, Splint doesn't yet support all C99 extensions so there are some legitimate C programs that will need to be modified.

我猜 _Complex 包含在该警告中。

您可以使用常见问题解答 (http://www.splint.org/faq.html#quest14) 中描述的技术解决 splint 明显缺乏对 _Complex 的支持,但如果这让您走得很远,我会感到惊讶使用 _Complex 帮助夹板处理 C99 代码:

If you just want to ignore a keyword, you can add -Dnonstandardkeyword= to make the preprocessor eliminate the keyword, where nonstandardkeyword is the name of the keyword.

关于c - 夹板在包含 complex.h 的代码上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3144057/

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