如何在Python扩展上处理uint8_t?

时间:2016-04-26 15:51:29

标签: python python-extensions uint8t

我想在我的C模块中传递一个函数的参数uint8_t' s。

我找不到直接解析这个数组的方法,所以我将它解析为PyObject_t然后迭代为PyTuple_t对象。这样,我需要将此元组的每个元素PyObject_t转换为uint8_t。

一旦没有PyInt_FromUINT8_t函数或类似函数,我怎么能这样做呢?

1 个答案:

答案 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_FromLongPyLong_FromLong