container_of

来源:互联网 发布:邓肯生涯总数据 编辑:程序博客网 时间:2024/05/16 07:43
  1. /**
  2.  * container_of - 通过结构体的一个成员获取容器结构体的指针
  3.  * @ptr: 指向成员的指针。
  4.  * @type: 成员所嵌入的容器结构体类型。
  5.  * @member: 结构体中的成员名。
  6.  *
  7.  */
  8. #define container_of(ptr, type, member) ({ \
  9.     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
  10.     (type *)( (char *)__mptr - offsetof(type,member) );})

    这个宏的作用其实很简单,就是通过一个容器(结构体)中某个成员的指针得到指向这个容器(结构体)的指针,简单的说就是通过成员找容器。

也就是 说 如果成员包含指针,那么 根据该成员来找时,传进去的应该是指针的指针。
0 0
原创粉丝点击