Linux内核中的list采用的思想是,将链表嵌入在数据结构中。而非将数据结构嵌入到链表中。(include\linux\list.h)
链表嵌入在数据结构fox中:
图1 linux内核list图示
数据结构fox嵌入到链表中:
图2 数据结构fox嵌入链表图示
将链表嵌入到数据结构中,就可以将链表和数据结构进行分离。从而实现一个list.h文件就可以提供全部的链表操作。不需要重构链表。使得代码更加适合linux内核简洁的要求。
先介绍一下list结点。在linux内核中,list的结点只有一种:
struct list_head {
struct list_head *next, *prev;
};
也就是说,头结点和嵌入到数据结构中作为