Linux常用的数据结构

转载 2015年11月18日 21:56:25
内核使用的数据结构有双向链表,单向链表和hash链表。另外,基树和红黑树也是内核使用的数据结构。实际上,这也是程序代码中通常使用的数据结构,一些偏僻难的数据结构并不常见。

1. container

  container是linux很重要的一个概念。有了container方法,才能实现对对象的封装。

  分析一下container方法。

======================================================================

#define container_of(ptr, type, member) ({               \

        const typeof( ((type *)0)->member ) *__mptr = (ptr);      \

        (type *)( (char *)__mptr - offsetof(type,member) );})


#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

  这个方法巧妙的实现了通过结构的一个成员指针找到整个结构的地址。有了container方法,list才

成为了一个通用的数据结构,通过container方法,还可以实现内核的封装,程序之间不暴露

内部的数据。

相关文章推荐

Linux内核常用宏和数据结构二(学习内核必备)

3. HASH表   HASH表适用于不需要对整个空间元素进行排序,而是只需要能快速找到某个元素的场合,是一种以空间换时间的方法,本质也是线性表,但由一个大的线性表拆分为了多个小线性表,由于只需要...

Linux内核常用数据结构要点

简单总结一下Linux Kernel常用数据结构和选取原则

linux内核常用数据结构和函数解释

1.struct hrtimer:高精度定时器 struct hrtimer { struct timerqueue_node node; ktime_t _softexpires; ...

Linux内核常用宏和数据结构一(学习内核必备)

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http...

linux内核中常用的数据结构和操作详解

目前在学习研究linux系统,作为一名初学者,感觉很吃力,通过网友指点和自己琢磨,总结出,首先理解linux关键数据结构,对理解linux系统大有裨益,故总结下文——详述相关关键数据结构。 1. 前言...

Linux 驱动中常用的数据结构

但凡阅读过Linux内核代码的工程师都有一个概念,Linux内核遍布着各种各样的链表结构。Tasklets、Workqueue、Hash、目录树等地方都用到数据链表。可以认为是Linux内核最重要的数...

Linux内核中的常用数据结构-双向链表(1)

Linux的内核代码,网上很多,例如http://docs.huihoo.com/doxygen/linux/kernel/3.7/include_2linux_2types_8h_source.ht...

Ucos系统常用的数据结构有哪些?

1)表 链表   表中主要了解链表,尤其是单向链表。 2)数组 一维数组 二维数组   使用数组有什么好处,在c语言中,数组是一组连续数字的集合它们数组的下标,代表了数组的相对位置,所以说,在一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)