当前位置:   article > 正文

Linux内核链表源码List.h及部分实现(小声)_内核list实现

内核list实现

概述


最近上到数据结构,让建立个通用链表数据结构。
于是开始自己构思,原来的想法是想着建立个包含三个指针的数据节点,一个指向数据,另外两个分别是节点的前驱和后继。使用的时候只需要将“data”指针指向用户自定义的结构体就可以了。当时就自觉想法完美,啧啧啧。
然后就上网看看其他人的想法,毕竟还是觉得自己的想法不够成熟,看看大神们都是怎么写的,还看到了和我想法一样的实现,不过看完了还是觉得不够好。思考了下,还是觉得这样的结构的可复用性和灵活性还是达不到理想要求。最后,在博客园看到了工藤-新一一篇博客
Linux内核中的通用链表实现!看完后觉得Linux的前辈们还是厉害啊,思路就是不一样,简直完美,感动万分。遂决定写下一篇我看的第一块Linux内核源码剖析。
在本文里,我将去掉源码中的注释,换上一些自己的注释和理解,同时也避免篇幅过长。


那么,开始了

#ifndef _MYLIST_H
#define _MYLIST_H

#define LIST_POISON1    NULL
#define LIST_POISON2    NULL
  • 1
  • 2
  • 3
  • 4
  • 5

这些就不不多说了,往下看
一开始就是实现通用链表的精华所在了:

struct list_head {
   
    struct list_he
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/128111
推荐阅读
相关标签
  

闽ICP备14008679号