我正在用一些C++代碼擴展Python。Python to C/C++ const char問題
一個我使用的功能有以下特徵:
int PyArg_ParseTupleAndKeywords(PyObject *arg, PyObject *kwdict,
char *format, char **kwlist, ...);
(鏈接:http://docs.python.org/release/1.5.2p2/ext/parseTupleAndKeywords.html)
感興趣的參數是kwlist。在上面的鏈接中,給出瞭如何使用這個函數的例子。在這些例子中,kwlist樣子:
static char *kwlist[] = {"voltage", "state", "action", "type", NULL};
當我編譯這個使用G ++,我得到警告:
warning: deprecated conversion from string constant to ‘char*’
所以,我可以改變靜態的char *靜態爲const char *。不幸的是,我無法更改Python代碼。因此,通過這種改變,我得到了一個不同的編譯錯誤(不能將char **轉換爲const char **)。根據我在這裏閱讀的內容,我可以打開編譯器標誌來忽略警告,或者我可以將kwlist定義中的每個常量字符串轉換爲char *。目前,我正在做後者。什麼是其他解決方案?
對不起,如果這個問題之前已經問過。我是新來的。
我很確定PyArg_ParseTupleAndKeywords()不期望修改kwlist。你的建議很有幫助。謝謝。 – Eugene 2010-04-08 17:02:20