如何确定域在结构中的字节偏移

来源:互联网 发布:红包软件工作室客集齐 编辑:程序博客网 时间:2024/05/13 08:22

3.12 如何确定域在结构中的字节偏移?

ANSI C 在 <stddef.h> 中定义了  offsetof() 宏,

用 offsetof(struct s, f) 可以计算出域 f 在结构 s 中的偏移量。

如果出于某种原因, 你需要自己实现这个功能, 可以使用下边这样的代码:

#define offsetof(type, f) ((size_t) /
    ((char *)&((type *)0)->f - (char *)(type *)0))

这种实现不是 100% 的可移植; 某些编译器可能会合法地拒绝接受。

参考资料: [ISO, Sec. 7.1.6]; [Rationale, Sec. 3.5.4.2];

                 [H&S, Sec. 11.1 pp. 292-3]。 

原创粉丝点击