当前位置:  技术问答>linux和unix

請教關於container_of的實現原理

    来源: 互联网  发布时间:2016-06-20

    本文导语:  最近讀linux內核2.6.10的usb驅動這一部分,看到函數associate_dev(struct us_data *us, struct usb_interface *intf)是有点不明白,us->pusb_dev = interface_to_usbdev(intf);这句是给 us->pusb_dev赋值,但是我翻来覆去看了几次这里,还是不能...

最近讀linux內核2.6.10的usb驅動這一部分,看到函數associate_dev(struct us_data *us, struct usb_interface *intf)是有点不明白,us->pusb_dev = interface_to_usbdev(intf);这句是给 us->pusb_dev赋值,但是我翻来覆去看了几次这里,还是不能发现其中奥妙,这其中是怎样给us->pusb_dev 赋值的?其中在宏interface_to_usbdev裡邊就是container_of(intf->dev.parent, struct usb_device, dev);执行这条语句之后,后面的debug信息中成员pusb_dev中的成员都已经被填入了值?承蒙高手指點,不胜感激~~

|
container_of()宏的简要解析
http://blog.csdn.net/yinkaizhong/archive/2009/04/20/4093795.aspx
http://blog.chinaunix.net/u2/79807/showart_1330336.html

|
2句话
1 结构体在内存中是连续的。
2 知道某个结构的变量地址,和它在这个结构体中的offset,简单减法,就可以知道该结构体的地址。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 宏container_of
  • container_of疑问
  • Linux内核的 container_of宏的疑问?
  • container_of() 的实现代码为什么这么写
  • 求解释,container_of()宏


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3