包括从c头文件到enthon的枚举

这两段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

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

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

点赞