1. list_head
结构体定义
Linux 内核链表的核心是 list_head
结构体,它在 include/linux/list.h
文件中定义,结构体代码如下:
struct list_head {
struct list_head *next, *prev;
};
next
:指向链表中下一个元素的指针。prev
:指向链表中前一个元素的指针。
这两个指针共同组成了一个双向链表,使得每个链表节点都能够方便地访问前后元素。
2. 链表的初始化
链表头的初始化通常通过 INIT_LIST_HEAD()
宏来完成,它的定义如下:
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); \
(ptr)->prev = (ptr); \
} while (0)
解析<