双向列表

Nginx源码分析系列4:Nginx里的双向链表

拟墨画扇 提交于 2019-12-04 17:56:41
花了半个小时看了买的书籍,原理已经掌握, 根据书上写了代码如下: typedef struct { u_char* str; ngx_queue_t qEle;//位置任意 int num; }TestNode; ngx_int_t compTestNode(const ngx_queue_t* a,const ngx_queue_t* b) { TestNode* aNode =ngx_queue_data(a,TestNode,qEle); TestNode* bNode = ngx_queue_data(b,TestNode,qEle); return aNode->num > bNode->num; /* #define ngx_queue_data(a, TestNode, qEle) \ (TestNode*) ((u_char *)a - offsetof(TestNode, qEle)) */ } void ngx_queue_test() { int i=0; ngx_queue_t queueContainer; TestNode node[5]; ngx_queue_init(&queueContainer); for(;i<5;i++) { node[i].num = i ; } //添加节点: ngx_queue_insert_tail(