IQUEUEHEAD是kcp定义的双向队列,负责协调和管理数据的流动与存储。
一、结构体定义
struct IQUEUEHEAD {
//此结构定义了双向队列的节点。每个节点包含两个指针:next指向下一个节点,prev指向上一个节点。
struct IQUEUEHEAD *next, *prev;
};
二、初始化
2.1 初始化队列头
//此宏为一个队列节点进行初始化。它会将next和prev指针都指向自身。
#define IQUEUE_HEAD_INIT(name) { &(name), &(name) }
//此宏声明并初始化一个队列头。
//比如IQUEUE_HEAD(queue)翻译一下就是
//struct IQUEUEHEAD queue ={&queue, &queue};
#define IQUEUE_HEAD(name) \
struct IQUEUEHEAD name = IQUEUE_HEAD_INIT(name)
2.2 队列初始化
//初始化函数,下一个指针指向自己,上一个指针也指向自己,典型的双向列表的初始化
#define IQUEUE_INIT(ptr) ( \
(ptr)->next = (ptr), (ptr)->prev = (ptr))
2.3 获取容器结构
//获取'MEMBER'成员在TYPE中的偏移量
#define IOFFSETOF(TYPE, MEMBER) ((size_t) &a

最低0.47元/天 解锁文章
1888

被折叠的 条评论
为什么被折叠?



