python源码剖析》c宏定义的有关问题
python源码剖析》c宏定义的问题最近刚开始看《python源码剖析》,里面看到Python源码里 object.h 文件里几个宏
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