【发布时间】:2014-01-03 01:48:48
【问题描述】:
我在 python 2.7.5 的帮助下找到了这个代码 sn-p,这是在用 C 和 C++ 扩展 Python 部分中关于将 C-API 暴露给其他模块的一章:为扩展模块提供 C API
/* C API functions */
#define PySpam_System_NUM 0
#define PySpam_System_RETURN int
#define PySpam_System_PROTO (const char *command)
// ...
static PySpam_System_RETURN PySpam_System PySpam_System_PROTO;
// ...
static void **PySpam_API;
#define PySpam_System \
(*(PySpam_System_RETURN (*)PySpam_System_PROTO) PySpam_API[PySpam_System_NUM])
此片段用于功能胶囊。胶囊用于在两个模块之间传递函数。
但是这个sn-p是什么意思:[...] (PySpam_SystemRETURN (*)PySpam_System_PROTO) [...]。
我认为这有点像静态演员表。像(int(*)(char s)) 这样的东西。但是这个结构是什么意思呢?
【问题讨论】:
-
你的意思是capsules?
-
对不起,是的!我已经更正了。
标签: python c python-c-api python-extensions