2011年7月17日
摘要: container_of()宏定义的执行,可以通过结构体成员的地址而得到结构体的首地址,它需要三个参数,第一个参数是一个结构体成员的地址,第二个参数是结构体类型,第三个参数是结构体的成员,其推算的总思路是,获得一个结构体成员的地址,和这个结构体成员相对于首地址的偏移,然后使用结构体成员的地址,减去成员对首地址的偏移,即可得到结构体的首地址。如此,需要解决两个问题,一是如何得到一个结构体成员的地址,二是如何算出这个成员相对于首地址的偏移。对于第二个问题,使用了0地址,先把0地址强制转换成指定的结构体类型,即0地址是指定的结构体类型,那么相对于0地址的成员地址就是相对于0地址的偏移地址,因此可以得 阅读全文
posted @ 2011-07-17 22:36 image eye 阅读(649) 评论(0) 推荐(0) 编辑