Ped*_*ves 9 python python-extensions uint8t
我想在我的C模块中传递一个函数的参数uint8_t的数组.
我找不到直接解析这个数组的方法,所以我将它解析为PyObject_t然后迭代为PyTuple_t对象.这样,我需要将此元组的每个元素PyObject_t转换为uint8_t.
一旦没有PyInt_FromUINT8_t函数或类似函数,我怎么能这样做呢?
你通常可以逃脱B使用unsigned char.根据解析参数,您应该能够做到:
uint8_t b;
if (!PyArg_ParseTuple("b", &b)) {
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
如果没有直接使用的参数(例如,你正在处理一个PyObject,只需使用的一个PyInt_*,PyLong_*或PyNumber_*函数(https://docs.python.org/3/c-api/number.html?highlight=pynumber#c.PyNumber_AsSsize_t) .
从a转换uin8_t为a PyObject也很简单,你可以使用PyInt_FromLong或PyLong_FromLong