stddef.h中有如下宏:
#ifdef _WIN64
#define offsetof(s,m) (size_t)( (ptrdiff_t)&( ( (s *)0 )->m ) )
#else
#define offsetof(s,m) (size_t)&( ( (s *) 0 )->m )
#endif
解释:
宏里面的 & 取的成员地址是相对与 s 的相对地址
用 size_t 把返回值 转化为了 十进制,否则 返回值类似于:12345678 为8位的16进制数(这也是地址值的正常表示法(32位地址,4个字节)