linux通用链表list实例讲解,linuxlist实例讲解
linux通用链表list实例讲解,linuxlist实例讲解
linux/list.h
linux内核中使用的链表 特点是可以复用,无需反复造轮子. 容易想到的一种链表用法是这样的: struct list{ strucu list *next, *prev; int priv_data; }; 数据被储存在链表的节点内部 通过next和prev移动来访问各个节点上的priv_data. 这样做的问题在于代码几乎没有复用性,不同的数据存储就需要对应的多种list. 而linux kernel中提出了一种数据包含在节点之外的链表 能很好的解决这个问题. struct list_head { struct list_head *prev, *next; }; struct list_data { struct list_head head; int priv_data; }; 数据结构体list_data只需要包含一个链表结构list_head 就可以使用链表的特性.
评论暂时关闭