声明:本文为原创博文,转载请注明出处。

     在libuv中,有一个只使用简单的宏封装成的高效队列(queue),现在我们就来看一下它是怎么实现的。

     首先,看一下queue中最基本的几个宏:

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

1 typedef void *QUEUE[2];2 3 /* Private macros. */4 #define QUEUE_NEXT(q)       (*(QUEUE **) &((*(q))[0]))5 #define QUEUE_PREV(q)       (*(QUEUE **) &((*(q))[1]))6 #define QUEUE_PREV_NEXT(q)  (QUEUE_NEXT(QUEUE_PREV(q)))7 #define QUEUE_NEXT_PREV(q)  (QUEUE_PREV(QUEUE_NEXT(q)))

photoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训

     首先,QUEUE被声明成一个"具有两个char*元素的指针数组",如下图:

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式