【发布时间】:2010-04-08 15:32:55
【问题描述】:
我正在用一些 C++ 代码扩展 Python。
我正在使用的函数之一具有以下签名:
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 *。目前,我正在做后者。还有什么其他解决方案?
很抱歉,如果之前有人问过这个问题。我是新人。
【问题讨论】:
标签: python c const-char