【发布时间】:2019-12-13 04:59:49
【问题描述】:
通常 typedef 的作用是
typedef DATATYPE NEW_NAME
但是,以下内容有点复杂,并且似乎与其他一些概念混合在一起(例如 tuple-alike guy)
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
【问题讨论】:
-
请不要发布文字图片。
通常 typedef 的作用是
typedef DATATYPE NEW_NAME
但是,以下内容有点复杂,并且似乎与其他一些概念混合在一起(例如 tuple-alike guy)
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
【问题讨论】:
这个定义看起来很混乱,因为函数指针起初很混乱。定义
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
意思是“创建一个名为newfunc的typedef,它是一个接收struct _typeobject*和两个PyObject*s并返回PyObject*的函数。该名称位于中间的返回类型之后,就像使用常规函数定义一样:
PyObject *somefunc(struct _typeobject *, PyObject *, PyObject *);
因为它是一个函数指针,它需要括号和另一个 * 来表明它是一个指针,并且数据类型在名称周围。
【讨论】: