【发布时间】:2017-10-19 08:23:27
【问题描述】:
我正在尝试在 C++ 程序中包含一些 C 函数。 我在包含数组作为参数的函数声明中遇到了一些问题。
extern "C" {
double Test( int nVar1, double f[nVar1] ) {
return f[nVar1-1];
}
}
int main() {
cout << "!!!Hello World!!!" << endl;
double f[2] = {1.0,2.0};
Test(2, f);
return 0;
}
我收到以下错误
- 'f' 未在此范围内声明
- 'nVar1' 未在此范围内声明
- 在 ']' 标记之前在函数体外部使用参数
我使用 Atollic 8.0(GCC 和 C -std=gnu11)
欢迎任何帮助
谢谢你
【问题讨论】:
-
虽然它是有效的 C99 函数,但它不是有效的 C++(您正在编译的内容)。
-
只是出于我个人的好奇,你为什么要这样做?为什么不使用 c++ 容器?
-
我想对遗留的嵌入式 C 代码进行单元测试。我在控制台中使用带有输出的 CppUnit 测试。我面临这样的原型: int ComputedF(int nPoints, int nFunc, double x[], double f[nPoints][nFunc], double df[nPoints][nFunc])