【发布时间】:2020-12-16 02:02:33
【问题描述】:
整数(长)类型定义实际上如下所示(一旦 C 宏展开):
struct _longobject {
long ob_refcnt;
PyTypeObject *ob_type;
size_t ob_size;
uint32_t ob_digit[1];
};
这里,ob_size是什么意思,它的值代表什么?
【问题讨论】:
-
stackoverflow.com/questions/37932600/… 不是完整的答案,但这里是关于 cython size_t 实现差异的讨论。
-
你看source了吗?短版:
ob_size的绝对值是 30 位或 15 位(取决于构建)位数;ob_size的符号是整数的符号。 -
(我删除了 NumPy 和 Pandas 标签;它们在这里不相关 - 这是一个关于纯 CPython 的问题,并且 NumPy 整数类型有自己的实现,不需要
ob_size字段。) -
我还是看不懂!