当前位置:   article > 正文

struct list_head/LIST_HEAD以及LIST_HEAD_INIT/INIT_LIST_HEAD

list_head_init

仅仅为struct list_head相关的两个宏:

#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name) \
        struct list_head name = LIST_HEAD_INIT(name)


static inline void INIT_LIST_HEAD(struct list_head *list)
{
        list->next = list;
        list->prev = list;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

定义了双向链表的头节点

可以如下:
LIST_HEAD(head);
或者:
struct list_head head;
LIST_HEAD_INIT(head);

#define LIST_HEAD_INIT(name) { &(name), &(name) } 
  • 1

用head的地址初始化其两个成员next和prev ,使其都指向自己

struct list_head {
        struct list_head *next, *prev;
}; 
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/128079
推荐阅读
相关标签
  

闽ICP备14008679号