开始宏定义如下,
#define _SIZE_OFFSET(t,m) (uint32_t)(&((t*)0)->m)
此方法在gcc下编译有warning,但是可以通过。但是g++编译失败,后来查找到其实很多编译器已经实现了这种操作,故修改为
#define _SIZE_OFFSET(t,m) offsetof(t,m) + #include <stddef.h>
问题解决
详细介绍,可以参考如下网址:
http://blog.csdn.net/cx132123/article/details/6641581