我在 python 2.7.5 的帮助下找到了这个代码片段,这是在用 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])
此剪辑适用于功能胶囊。胶囊用于在两个模块之间传递函数。但是这个片段的含义是什么:[...] (PySpam_SystemRETURN (*)PySpam_System_PROTO) [...]
. 我认为这有点像静态演员表。类似的东西(int(*)(char s))
。但是这个结构的意义是什么?