我有一个巨大的 C 项目。现在我需要一个 C++ 函数来填充一些变量。
通过将函数声明为 extern "C",从 C 项目中调用该函数是没有问题的。
问题是,我需要将指针传递给 C++ 函数,并且在函数中,我想为指针赋值。但正是在这一点上,程序因“分段错误”而崩溃。
有没有办法使这项工作?还是不可能在 C 和 C++ 之间以这种方式使用指针?
在 C 中将函数作为线程调用:
Restwo = pthread_create(&num, NULL, (void *) function, &var);
标题
#ifdef __cplusplus
extern "C"
{ // Dies sorgt dafür, dass der Header sowohl in C als auch in C++ funktioniert
#endif
int function(int *pITS);
#ifdef __cplusplus
}
#endif
C++ 函数
extern "C" {
int getNewLsaSignals(int *var) {
printf("Successfully started\n"); //works
var = 19; //doesn't work
//insert some c++ code here
}
}