以下是一个宏的意思是什么?
为什么要用0?
这个宏的返回值是什么?
#define container_of(ptr,type,member) \
({ \
typeof(((type *)0)->member) * p = (ptr); \
(type *)((unsigned long)p - (unsigned long)&(((type *)0)->member)); \
})
(type *)((unsigned long)p - (unsigned long)&(((type )0)->member))这段代码我理解是返回p的地址,用type解释,我觉得后面部分
- (unsigned long)&(((type *)0)->member)
可以不用欸,请问上面这个表达式能不能删掉?