前言
container_of 是一个宏函数,它被称为内核第一宏。反正就是牛逼。
作用:根据一个结构体成员的名称和地址以及,结构体的类型,可以计算出结构体变量的地址。
网上大多数文章都是在分析这个宏的原理,但是对于如何使用这个宏讲的非常少,其实笔者认为,对于container_of的理解固然重要,
但是正真实践中还是要掌握他的使用方法。
1. container_of 的定义
#define offsetof(TYPE, MEMBER) ({
(size_t)(&((TYPE *)0->MEMBER))})
#define container_of(