offsetof是宏,不是函数。
下图是offsetof的宏定义
**offsetof括号有两个参数。 一个是结构类型,另一个是结构中的成员
(size_t )实际上是未指定的int类型,s是结构类型,s *是结构指针。
(s * ) 0是将常数0强制转换为结构体的起始地址,相当于在结构体中位于最上面
假设成员的地址为0。 在这种情况下,结构的第一个成员的地址实际上是结
结构体的起始地址,(s * )0)-m访问结构体中的成员,之后使用把成
的地址,并将检索到的地址强制转换为int类型,即可获得每个成员的偏移量。 **