如何在Cython中使用内联函数

时间:2014-01-02 11:45:52

标签: python pointers inline cython

我是Cython的新手,我在编译内联函数时遇到问题。简化的代码是:

cdef inline REG8(ulong addr):
   (<volatile_uchar_ptr *>(addr))[0]

我正在尝试在Python方法中使用内联函数:

def test(self):
    REG8(addr) = 0x08                         # ==> Error: "Cannot assign or delete this".
    (<volatile_uchar_ptr *>(addr))[0] = 0x08  # ==> OK. 

当我使用内联函数REG8()时,我收到编译器错误: Cannot assign or delete this。但是,插入的代码将起作用。我不知道这里有什么问题,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您错过了[0]

REG8(addr)[0] = 0x08

您正在分配函数调用,而不是它指向的值。