这是什么的typedef achieveing在CPython的/包含/ object.h

问题描述 投票:0回答:1

通常,typedef的作用是

typedef DATATYPE NEW_NAME

但是,以下是有点复杂的和似乎是与一些其他概念混合(像元组酷似人)

typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);

python c cpython
1个回答
1
投票
该定义看起来令人困惑,因为函数指针起初是令人困惑的。定义

typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);

意味着”创建一个名为newfunc的typedef,该类型定义接受一个struct _typeobject*和两个PyObject*并返回一个PyObject*。这个名字是在中间的返回类型后喜欢将它与普通函数的定义:

PyObject *somefunc(struct _typeobject *, PyObject *, PyObject *);

因为它是一个函数指针,所以需要用括号括起来,并用另一个*表示它是一个指针,并且数据类型在名称周围。 
© www.soinside.com 2019 - 2024. All rights reserved.