0

可能重复:
为什么要在 offsetof() 中减去空指针?

当我阅读 apache 的源代码时,我有一个问题。

在 apr_general.h 中,存在如下定义:

#define APR_OFFSET(p_type,field) \
    ((long) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))

#endif /* !CRAY */

我很困惑为什么我们应该在这个操作中减去 ((char *) NULL))。

有没有人可以帮助我?

4

1 回答 1

0

此技巧用于从结构的开头获取偏移量(整数,而不是指针)

于 2012-09-20T19:41:30.143 回答