通常,typedef的作用是
typedef DATATYPE NEW_NAME
但是,以下是有点复杂的和似乎是与一些其他概念混合(像元组酷似人)
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
意味着”创建一个名为newfunc
的typedef,该类型定义接受一个struct _typeobject*
和两个PyObject*
并返回一个PyObject*
。这个名字是在中间的返回类型后喜欢将它与普通函数的定义:
PyObject *somefunc(struct _typeobject *, PyObject *, PyObject *);
因为它是一个函数指针,所以需要用括号括起来,并用另一个*表示它是一个指针,并且数据类型在名称周围。