如图,总体buffer可分为3部分:
size
:记录
data
块的字节个数,从0开始编号(size = 0代表data块为空而不是buffer为空),不包括前面的
size
与
pos
(
size
+
pos
统称
header)。
根据size的大小(也就是data块的字节数)可将buffer分为大块与小块,其中size >= 0x8000 为大块,否则为小块。
(这里有个问题:大小块size都是一个范围,我们要怎么快速来确定buffer是大块还是小块呢?这个问题答案我们放到后面再细说)
pos
:记录
data
块的读写指针,也是从0开始编号(这里
pos
既记录读又记录写操作的位置,本身是1个指针,
存不了两条信息,所以我们需要自己手动调整
pos
)
data
:存储buffer里面的实际数据,可以是
int,ulong,str
等多种类型
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。