computer:c:tips:struct_offset
结构体成员Offset
有一种空指针(NULL)的特殊用法,将其强制转换为某种结构体类型,然后获取该结构体某成员的地址偏移量(offset):
#define OFFSET(type, field) \ ((size_t)&((type *)0)->field)
虽然该代码经常可以工作,但C标准并没有明确定义该行为。
其实,C标准头文件stddef.h已经定义了一个相同功能的宏offsetof,可以直接使用,而不必自己实现。
computer/c/tips/struct_offset.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1