2011-08-22 61 views
4

這兩個cython代碼之間有什麼區別?將C++頭文件中的枚舉包括進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文件,如果你說的頭文件什麼關係呢?我可以從頭文件中包含它而不是重新輸入它嗎?

回答

2

讓Cython生成枚舉聲明不應該是個問題。但是,您通常希望使用標頭來確保聲明是一致的。 Cython將#include頭部而不是包含自己的聲明。也就是說,它實際上並不使用頭中的聲明來生成代碼。您仍然必須編寫兼容的聲明。您可以在用戶指南中找到更多信息:Interfacing with External C Code: Referencing C header files