计算结构体内的成员所处的结构体的首地址
计算结构体成员在结构体内的地址编号(偏移值或差值)
type结构体名,mem结构体里某个成员名
结构体指针:(type*)0
结构体指针访问成员:((type*)0)->mem,拿到了里面的成员变量
加&是变为地址编号&((type*)0)->mem,此时为16进制
但是我们想要值,所以强转
变为整数值:(long)&((type*)0)->mem
注意:32位为int,64位为long
#define offset(type,mem) ((long)&(