这两段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
,如果您对头文件有任何说明,这是否重要?我可以从头文件中包含它而不是重新输入吗?
答案 0 :(得分:2)
让Cython生成枚举声明应该不是问题。但是,您通常希望使用标头来确保声明是一致的。 Cython将#include
标题而不是包含自己的声明。也就是说,它实际上并没有使用标头中的声明来生成代码。您仍然必须编写兼容的声明。您可以在用户指南中找到更多信息:Interfacing with External C Code: Referencing C header files。