使用extern" C"包装C ++函数

时间:2016-06-24 12:00:07

标签: python c++ ctypes extern

我一直在关注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?
}

0 个答案:

没有答案