这两段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文件中重新定义,那你说头文件有没有关系?我可以从头文件中包含它而不是重新输入它吗?
让 Cython 生成枚举声明应该不是问题。但是,您通常希望使用标头来确保声明的一致性。Cython 将使用#include标头而不是包含其自己的声明。也就是说,它实际上并不使用标头中的声明来生成代码。您仍然需要编写兼容的声明。您可以在用户指南中找到更多信息:与外部 C 代码交互:引用 C 头文件。