Content #
链表头的初始化有两种方法,一种是静态初始化,另一种动态初始化。把 next 和 prev指针都初始化并指向自己,这样便初始化了一个带头节点的空链表。
<include/linux/list.h>
- 静态初始化
#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;
}
From #
奔跑吧Linux内核——入门篇