写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明
#define offsetof(data,member)((size_t)&(((type*)0)->member))
- 先假设结构体的首地址从0开始
- 然后将type转换成指针指向它的成员
- 然后取这个成员的地址
- 然后将其转换为size_t的类型,即可求得它相对于首地址的偏移量
写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明
#define offsetof(data,member)((size_t)&(((type*)0)->member))