写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明

写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明

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

你可能感兴趣的:(C语言进阶,c语言)