containof和list_entry的实现方式

他们实现方式如下: #define list_entry(ptr, type, member) ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 其中,(unsigned long)(&((type *)0)->member))是关键,它计算出了成员变量member在结构体中的偏移量

 

你可能感兴趣的:(containof和list_entry的实现方式)