我一直在关注this教程,尝试使用extern" C"来包装C ++函数。我想在Python中使用ctypes访问此函数。在本教程中,作者创建了一个类" Foo"然后使用extern用C包装它。我很难正确地实现它,因为我无法理解extern中的代码" C"这样做:
extern "C" {
Foo* Foo_new(){ return new Foo(); }
void Foo_bar(Foo* foo){ foo->bar(); }
}
有人可以解释作者在这两行中做了什么吗?具体来说,我想知道这里如何使用指针,创建Foo_new()的意义是什么,foo-> bar()中的语法是什么意思。
你将如何在一个简单的斐波纳契函数上实现它,如下所示?
int fib(int a){
if (a<=0)
return -1;
else if (a==1)
return 0;
else if ((a==2)||(a==3))
return 1;
else
return fib(a-2) + fib(a-1);
};
extern "C" int fib(int a){
// what do I do here?
}