如何将C中的void *类型转换为python中的字符串类型?

时间:2018-09-28 05:57:07

标签: python c cython

在使用Cython封装C语言时,我尝试将C中的void*类型转换为python中的string,但是我不知道如何将void*类型转换为{{ 1}},将C string转换为python int时,就像(类的一部分):

Py_ssize_t

当我要将其转换为cpdef int peek_tail(self): cdef int value = <Py_ssize_t>cqueue.queue_peek_tail(self._c_queue) 时,如何定义它?

string

cpdef ? peek_tail(self): cdef ? value = <?>cqueue.queue_peek_tail(self._c_queue) 是我想要的。是否有文件?

1 个答案:

答案 0 :(得分:1)

您可以在char*上使用cdef,但是由于您使用cpdef,所以您也可以对字节(py2)或unicode(py3)执行str。我相信queue_peek_tail的回报总是Py_ssize_t

有关更多具体信息,请参见here。尤其是线

  

通常来说:除非您知道自己在做什么,否则请尽可能避免使用C字符串,而应使用Python字符串对象。