/* 返回p指向结点的后置结点
如果p指向ZIP_END,返回NULL;
如果p是表尾结点,返回NULLL */
unsigned char *ziplistNext(unsigned char *zl, unsigned char *p) {
if (p[0] == ZIP_END) {
return NULL;
}
/* 函数zipRawEntryLength:返回指针p所指向的节点占用的字节数总和*/
p += zipRawEntryLength(p); /* p指向下一个结点 */
if (p[0] == ZIP_END) { /* 此时p指向表尾,也就是说一开始p指向最后一个结点*/
return NULL;
}
return p;
}