Polyspace常见问题及解决方法
1. 可变参数函数声明与调用问题
1.1 问题描述
可变参数函数在一个函数中声明,但在另一个函数中调用时没有事先声明,错误信息会提示缺少函数所需的原型。例如下面的代码,由于返回类型不匹配会出现链接错误:
file1.c
int input(void);
void main() {
int val = input();
}
file2.c
float input(void) {
float x = 1.0;
return x;
}
1.2 解决方法
- 确保函数声明与定义匹配。即使构建过程允许这些错误,运行时也可能出现意外结果。
- 对于可变参数函数,在调用之前先声明。如果不想更改源代码,可以通过以下方式解决链接错误:
1. 将函数声明添加到一个单独的文件中。
2. 仅为了验证目的,使用Include (-include)选项将该文件包含到每个源文件中。
2. 无关声明冲突问题
2.1 可能原因
在同一个Polyspace项目中,使用相同的标识符名称来命名两个无关的对象,常见原因如下:
- 原本打算将对象声明为静态的,以避免外部链接,但遗漏了 static 说明符。
-
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



