读书人

python源码剖析》c宏定义的有关问题

发布时间: 2012-09-13 09:51:52 作者: rapoo

python源码剖析》c宏定义的问题
最近刚开始看《python源码剖析》,里面看到Python源码里 object.h 文件里几个宏定义:

C/C++ code
#define _PyObject_HEAD_EXTRA        \    struct _object *_ob_next;    \    struct _object *_ob_prev;#define PyObject_HEAD            \    _PyObject_HEAD_EXTRA        \    Py_ssize_t ob_refcnt;        \    struct _typeobject *ob_type;#define PyObject_HEAD_INIT(type)    \    _PyObject_EXTRA_INIT        \    1, type,


第一个宏定义应该是定义了两个相同类型的指针。

第二个宏定义里:
_PyObject_HEAD_EXTRA
Py_ssize_t ob_refcnt;
struct _typeobject *ob_type;
是不是各自等于PyObject_HEA?

第三个宏定义里:
1, type,
为什么这么写呢?
第三个宏定义什么意思呢?

[解决办法]
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。

[解决办法]
在定义#define时候,斜杠'\'是用来续行的。。。
参考资料:
http://wenku.baidu.com/view/87dbe504eff9aef8941e06eb.html

读书人网 >C语言

热点推荐