包括从c ++头文件到cython的枚举

时间:2011-08-22 19:43:17

标签: enums cython

这两段cython代码有什么区别?

cdef extern from "some_header.h":

    enum _some_enum:
        ...
    ctypedef _some_enum some_enum

cdef extern enum _some_enum:
    ...
ctypedef _some_enum some_enum

由于您必须重新定义enum文件中的.pyd,如果您对头文件有任何说明,这是否重要?我可以从头文件中包含它而不是重新输入吗?

1 个答案:

答案 0 :(得分:2)

让Cython生成枚举声明应该不是问题。但是,您通常希望使用标头来确保声明是一致的。 Cython将#include标题而不是包含自己的声明。也就是说,它实际上并没有使用标头中的声明来生成代码。您仍然必须编写兼容的声明。您可以在用户指南中找到更多信息:Interfacing with External C Code: Referencing C header files