/* * 计算结构体中指定成员相对于结构体起始地址的字节偏移量。 * * 该宏通过将空指针0强制转换为结构体指针并访问其成员字段 * 从而获取该成员的地址。由于基地址为0该地址值即为偏移量。 * * 注意此宏仅用于编译期计算偏移量不会实际解引用空指针 * 因此是安全的。常用于底层编程、序列化或硬件寄存器映射等场景。 * * param type 结构体类型名称 * param field 结构体中的成员字段名 * return 成员字段在结构体中的字节偏移量类型为 uintptr_t */ #define OFFSET(type, field) ((uintptr_t)(((type *)0)-field))