云南理工大学linux教学-6Linux-第六章.pptVIP

  • 2
  • 0
  • 约5.73千字
  • 约 23页
  • 2017-07-28 发布于浙江
  • 举报
第六章 Linux内核中的链表 第六章 Linux内核中的链表 第六章 Linux内核中的链表 Linux内核中的链表 Linux内核中的链表 list_entry(p,t,m)宏 这种链表的优点: (1)所有链表基本操作都是基于list_head指针的,因此添加类型时,不需要重复写链表基本操作函数 (2)一个container数据结构可以含有多个list_head成员,这样就可以同时挂到多个不同的链表中 链表操作接口 1. 声明和初始化 实际上Linux只定义了链表节点,并没有专门定义链表头,那么一个链表结构是如何建立起来的呢?让我们来看看LIST_HEAD()这个宏: #define LIST_HEAD_INIT(name) { (name), (name) } #define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name) 链表操作接口 Linux用头指针的next是否指向自己来判断链表是否为空: static inline int list_empty(const struct list_head *head) { return head-next == head;} ) INIT_LIST_HEAD宏用于运行时初始化链表: #define INIT_LIST_

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档