私はPython/C APIを使用しており、C関数でPythonの長整数引数を取り、それを10nPyLong
進数の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の長整数に変換する関数が記載されていますが、その逆を行う関数が見つかりません。
これは可能ですか?1つのアイデアは、Pythonの長整数をPythonの文字列オブジェクトに変換してからCのchar配列に変換することですが、長い整数を処理する文字列関数もありません。CがPythonのlongintを処理する唯一の方法は、Cのint型に変換することであるように思われます。これは、すべて私のアプリケーションでオーバーフローします。