根据Pythondocumentation的说法,模块方法表应该写如下:
static PyMethodDef SpamMethods[] = {
...
{"system", spam_system, METH_VARARGS,
"Execute a shell command."},
...
{NULL, NULL, 0, NULL} /* Sentinel */
};
但是我看到一些开发人员写的哨兵如下:
^{pr2}$我的问题是,以下是使用缩短版本是否存在风险?
用
{}
初始化的pod类的字段未显式设置为零。在如果
<>这在C和C++中都是正确的。在PyMethodDef
是pod(普通的旧数据),我怀疑,{NULL, NULL, 0, NULL}
将生成与{}
相同的数据。在如果类^ {CD2>}是C++ 11中的非POD类,^ {< CD3>}可以做不同于^ {}的事,但我强烈怀疑这里是这样的。在
{I{I>在同一时间内,{I}不改变cd2}的数据。我觉得那不太可能。在
相关问题 更多 >
编程相关推荐