题目:定义一个宏,要求算出任意struct的某个成员的偏移量
#define get_struct_member_offside(stru, m)
(char *)&((stru*)0)->m
进一步,如果知道某个成员的地址、struct名和成员名,怎么求这个struct变量的地址呢?
可以这样:
#define get_struct_addr_from_member_addr(p, stru, m)
(struct stru*)( (char*)p - (char*)&( (( struct stru*)0)->m) )