将Python长整数转换为C字符数组
我正在使用Python/C API,希望C函数获取Python长整型参数nPyLong,并将其转换为以10为基数的字符数组nString。下面是我想做的一个片段将Python长整数转换为C字符数组,python,c,python-c-api,python-c-extension,Python,C,Python C Api,Python C Extension,我正在使用Python/C API,希望C函数获取Python长整型参数nPyLong,并将其转换为以10为基数的字符数组nString。下面是我想做的一个片段 PyObject *nPyLong; PyArg_ParseTuple(args, "O", nPyLong); PyLong_Check(nPyLong) // returns true const char *nString; // This function doesn't exist but demonstrates the
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参考中提到了一个函数,它可以在给定任意基的情况下将C字符数组转换为Python长整数,但我找不到一个函数可以实现相反的操作
这可能吗?一种方法是将Python长整数转换为Python字符串对象,然后转换为C字符数组,但是也没有字符串函数来处理长整数。似乎C处理Python长整数的唯一方法是转换为C整数类型,所有这些类型都会在我的应用程序中溢出。使用(或
PyObject\u Bytes()
)并将结果对象转换为char*
哇,这比我想象的要容易得多。它甚至不返回后缀“L”!