嵌入式Linux开发---container_of的探究

本文深入探讨了Linux内核开发中常用的`container_of`宏,它用于从结构体成员指针获取整个结构体的地址。通过这个宏,开发者可以在内核代码中实现高效的指针操作。文章详细解释了`container_of`的定义,并指出当输入参数不匹配时,编译器会给出警告。了解这一技巧对于内核编程至关重要。
摘要由CSDN通过智能技术生成

第一步

在这里插入图片描述

第二步

在这里插入图片描述

第三步 真正的container_of

学习内核开发人员的优化技巧:


#define container_of(ptr, type, member) ({              \         
const typeof( ((type *)0)->member ) *__mptr = (ptr);    \         
(type *)( (char *)__mptr - offsetof(type,member) );})

如果开发者使用时输入的参数有问题:ptr与member类型不匹配,编译时便会有warnning, 但是如果去掉改行,那个就没有了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值