有没有办法包装一个名为关键字的结构(例如print)?

时间:2012-01-16 16:01:38

标签: cython keyword wrapping

我有一些C源代码,想把它包装在Cython中。现在,问题是,有一个名为print的结构,并且externing会引发语法错误。

cdef extern from "foo.h":
    struct print:
        # ...

当像关键字一样调用属性或函数或类似函数时,会出现相同的问题。

cdef extern from "foo.h":
    struct foo:
        bint print
    print(char*, int)

有没有办法解决这个问题,没有修改源?也许有些技术用源文件中的实名替换代理名称?

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的解决方案是:

cdef extern from "foo.h":
    struct print "MY_print":
        double var "MY_var"

print.var将由以下人员定义:

MY_print.MY_var

这样,您可以从头文件重命名结构,函数,联合和枚举。当Cython将您的代码编译为C代码

时,将转换名称