我想在我的C模块中传递一个函数的参数uint8_t' s。
我找不到直接解析这个数组的方法,所以我将它解析为PyObject_t然后迭代为PyTuple_t对象。这样,我需要将此元组的每个元素PyObject_t转换为uint8_t。
一旦没有PyInt_FromUINT8_t函数或类似函数,我怎么能这样做呢?
答案 0 :(得分:5)
您通常可以使用B
轻松unsigned char
。根据{{3}},您应该能够做到:
uint8_t b;
if (!PyArg_ParseTuple("b", &b)) {
return NULL;
}
如果不直接使用参数(例如,您正在处理PyObject
,只需使用PyInt_*
,PyLong_*
或PyNumber_*
函数之一(Parsing Arguments )。
从uin8_t
转换为PyObject
也很简单,您可以使用PyInt_FromLong
或PyLong_FromLong