为什么在offsetof()中减去空指针?
Linux的stddef.h将
offsetof()
定义为:
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
而关于offsetof()
(http://en.wikipedia.org/wiki/Offsetof)的维基百科文章将其定义为:
#define offsetof(st, m)
((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))
为什么在维基百科版本中减去(char *)0
?有什么情况会真正有所作为吗?
没有找到相关结果
已邀请:
2 个回复
嗓瑰
妊辽剁茧