我正在使用Python / C API并希望C函数采用Python长整数参数nPyLong
,并将其转换为基数为10的char数组nString
。是我想做的事情的片段。
PyObject *nPyLong;
PyArg_ParseTuple(args, "O", nPyLong);
PyLong_Check(nPyLong) // returns true
const char *nString;
// This function doesn't exist but demonstrates the functionality
PyLong_AsCharArray(&nString, nPyLong, 10);
API参考提到了一个函数PyObject* PyLong_FromString(char *str, char **pend, int base)
,它将C char数组转换为Python长整数,给定任意基数,但我找不到反函数的函数。
这可能吗?一个想法是将Python长整数转换为Python字符串对象,然后转换为C char数组,但也没有字符串函数来处理长整数。似乎C处理Python long int的唯一方法是转换为C int类型,所有这些都会在我的应用程序中溢出。