您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页LINUX 内核零散知识 container_of宏

LINUX 内核零散知识 container_of宏

来源:爱够旅游网

container_of是内核中常用的一个宏。定义如下:

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

设个宏共有三个参数:

offsetof宏定义如下:

#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

但是在container_of宏的的定义中,还有一个语句:

const typeof( ((type *)0)->member ) *__mptr = (ptr);

该句的作用其实是一个错误检查,防止ptr与member类型不匹配。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务