linux 内核最为经典的容器操作
来源:互联网 发布:淘宝网知识产权申诉 编辑:程序博客网 时间:2024/05/22 15:23
linux 内核最为经典的容器操作,通常把一个数据结构看成是一个容器,而里面的属性看作是容器里的一分子。比如:
struct A {
long* l;
struct B b;
struct C c;
};
void test (struct B* b) {
struct A* a;
a = container_of (b, struct A, b);
}
表示的意思:b 的容器是a;
#define container_of(ptr, type, member) ({ /
const typeof( ((type *)0)->member ) *__mptr = (ptr); /
(type *)( (char *)__mptr - offsetof(type,member) );})
动机:通过这种方式可以很容易得到一个元素所在的数据结构。
当数据结构的一个元素作为一个基类(类似)暴露出去后,那么上一层主要就通过这个接口进行操作,在进行回调的时候(回到子类的那个文件),就可以很方便地取出扩展类(容器),那么就可以很方便地进行操作。
- linux 内核最为经典的容器操作
- 【Linux内核数据结构】最为经典的链表list
- 最为经典的C#操作文件的方法大全
- 最为常用的C#经典操作文件方法
- 被称为世界上最为经典的25句话
- 当今世界最为经典的十大算法
- 当今世界最为经典的十大算法
- NumPy中最为基本的Array操作
- linux内核的经典书籍
- linux内核的经典书籍
- 当今世界最为经典的十大算法--投票进行时
- 当今世界最为经典的十大算法[转]
- 当今世界最为经典的十大算法--投票进行时
- 中国最为经典的爱情与战争题材电影
- 当今世界最为经典的十大算法--投票进行时
- 史上最经典的Linux内核学习方法论
- 史上最经典的Linux内核学习方法论
- 学习linux内核的经典书籍介绍
- unspecified Error of js on windows2000 and ie6 to try to save a File.
- 全局变量和函数变量 var
- 如何实现 asp 批量上传图片?
- 初识JQuery
- Oracle RAC学习笔记:基本概念及入门
- linux 内核最为经典的容器操作
- 耕书录之CSS篇-《精通CSS-高级Web标准解决方案》
- 探求技术是否能改变我们现在的处境
- eMule源码的编译
- C语言的谜题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Automation Installation Process of RHEL via Kickstart File
- 字符串验证--java.util.regex.Pattern
- 由于gcc静态链接库顺序引起的问题