container_of函数用法(通俗解释+手把手使用教程)

container_of函数在linux内核中定义如下:

相信大家已经根据英文解释看懂了这个函数的用法

*三个参数分别是:1.该成员变量的指针 2.要寻找的结构体的类型 3.这个成员变量在结构体中的名字

通俗点说,此函数的作用就是通过结构体中的成员变量来找到结构体的首地址,也就是结构体的指针。

并且这个函数可以一层层往上找,接下来上实例看一下:

目标:通过work成员变量找到irq_keydesc这个结构体指针, 已知:work指针

第一层结构体如下:

        

 因而写出以下语句,参数含义分别是(work指针,  ​​​​结构体类型,  " work "这个名字)

找到第一个被实例化的irq_keydesc类型结构体指针指针key,接下来通过key指针找到第二层结构体的指针:                                
                        

得到以下语句,参数含义分别是(成员key指针, 要求的结构体类型, irqkey这个名字

最后得到了被实例化的imx6uirq_device类型结构体指针dev, 经过运行验证,结果正确。

linux内核中使用此函数非常的多!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值