将 c++ 头文件中的枚举包含到 cython 中

dki*_*ick 5 enums cython

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

cdef extern from "some_header.h":

    enum _some_enum:
        ...
    ctypedef _some_enum some_enum
Run Code Online (Sandbox Code Playgroud)

和:

cdef extern enum _some_enum:
    ...
ctypedef _some_enum some_enum
Run Code Online (Sandbox Code Playgroud)

既然要enum.pyd文件中重新定义,那你说头文件有没有关系?我可以从头文件中包含它而不是重新输入它吗?

Ery*_*Sun 3

让 Cython 生成枚举声明应该不是问题。但是,您通常希望使用标头来确保声明的一致性。Cython 将使用#include标头而不是包含其自己的声明。也就是说,它实际上并不使用标头中的声明来生成代码。您仍然需要编写兼容的声明。您可以在用户指南中找到更多信息:与外部 C 代码交互:引用 C 头文件