2011-01-24 66 views
3

令人驚訝的是,我似乎無法找到通過名稱(無論是在網絡上還是在cython示例中)獲取結構元素的單個示例。在Cython中獲取struct元素

因此,我收到一個指向C函數結構的指針,並且希望逐一訪問這些元素並將它們重新打包爲python list/dict。

可能:

structPointer['propertyName'] 

structPointer.propertyName 

我想要得到的structName->propertyName效果。

回答

5

你的第二個語法是正確的,但你必須有結構類型的外部聲明:

cdef extern from "someheader.h": 
    struct properties_t: 
     int value1 
     int value2 
    properties_t* getthem() 

cdef void foo(): 
    cdef properties_t* prop 
    prop = getthem() 
    i = prop.value1