||
1.怎样获得结构体成员在结构体中的偏移
#deine get_offset(type,member) (unsigned long)(&((type*)(0->member))
type为结构体,member为结构体成员。
2.从结构体成员变量地址得到结构体变量地址
#define get_addr(ptr,type,member) (type*)((char*)ptr-(unsigned long)(&((type*)(0->member)))
这里ptr是type结构内部成员member的地址,要得到type结构本身的地址,要从ptr减去一个位移量,也就是ptr在type中的偏移。