quicklistNode结构是如何定义的,它有哪些关键字段?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
quicklistNode结构定义如下,包含以下关键字段:
c
typedef struct quicklistNode {
struct quicklistNode *prev; // 指向上一个ziplist节点
struct quicklistNode *next; // 指向下一个ziplist节点
unsigned char *zl; // 数据指针,指向ziplist结构或quicklistLZF结构
unsigned int sz; // ziplist结构的总长度(内存占用长度)
unsigned int count : 16; // ziplist中的元素数量
unsigned int encoding : 2; // 数据编码方式,RAW或LZF
unsigned int container : 2; // 容器类型,NONE或ZIPLIST
unsigned int recompress : 1;// 解压标记
unsigned int attempted_compress : 1; // 尝试压缩标记
unsigned int extra : 10; // 预留字段,用于未来扩展
} quicklistNode;