1.1 SEXPs

Keywords:

Next: ,Previous: R Internal Structures,Up: R Internal Structures

1.1 SEXPs

R 用户所说的 变量对象只是绑定一个值的符号(symbols)而已。这些值可以认为是SEXP (一个指针),或者它指向的结构SEXPREC (向量有另外一种形式,即指向 VECTOR_SEXPREC 结构的VECSXP)。因此 R 对象的基本构建块常常被称为节点(nodes),表示 SEXPRECs 或者 VECTOR_SEXPREC

注意,SEXPREC的内在结构不可以被 R 的扩展所访问: SEXP 是一种不透明指针(opaque pointer),并且 内核只可通过提供的函数访问。

两种节点结构的开始三个字段是32位的sxpinfo 字头(header),随后是三个指针(放在一个双向链表中分布指向属性以及前后节点),然后是一些其它字段。在32位平台上,一个节点1占用 28 字节:在64位平台上,通常是56个字节(取决于系统的字节对齐限制(alignment constraints))。

头字段的开始5位最多可以指定32个 SEXPTYPE


Footnotes

[1] 严格意义上来说,SEXPREC节点和 VECTOR_SEXPREC 节点虽然比较小但其后有数据紧跟。

Hits:Loading...

special topic