首页 > 其他 > 详细

Linux 内核中container_of的理解

时间:2014-02-22 20:53:35      阅读:377      评论:0      收藏:0      [点我收藏+]

在linux kernel中, container_of的定义如下:

bubuko.com,布布扣

 

其作用是根据结构体类型、它的一个成员地址及该成员名称来获取该结构体的起始地址。 其中, typeof 是GNU C对标准C的一个扩展,用于获取指定变量的数据类型。 此外用到了另外一个宏定义:

bubuko.com,布布扣

offsetof 获取结构体成员在结构体内部的偏移。它的实现很巧妙,即将0x0位置当做一个TYPE类型的结构体,此时结构体的成员地址也就是其结构体内部地址了。

 

理解了typeof 和 offsetof, container_of的实现也就很容易理解了。 精巧高效的实现,不得不佩服!

 

图片来源于:http://www.embedu.org/Column/Column433.htm

Linux 内核中container_of的理解

原文:http://www.cnblogs.com/mush0m/p/3560555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!