算出任意struct的某个成员的偏移量

转载 2007年10月02日 11:20:00
题目:定义一个宏,要求算出任意struct的某个成员的偏移量
 
#define get_struct_member_offside(stru, m)
(char *)&((stru*)0)->m
 
进一步,如果知道某个成员的地址、struct名和成员名,怎么求这个struct变量的地址呢?
 
可以这样:
#define get_struct_addr_from_member_addr(p, stru, m)
(struct stru*)( (char*)p - (char*)&( (( struct stru*)0)->m) )

写宏定义:得到一个field在结构体(struct type)中的偏移量。

#define OFFSETOF(type, field) ((size_t)&(((type *)0)->field))(type *)0:把0地址当成type类型的指针。((type *)0)->...

得到一个field在结构体(struct type)中的偏移量

from:http://blog.chinaunix.net/uid-21372424-id-120573.html 内联函数与宏定义   在C中,常用预处理语句#define来代替一个函数定义。例...

写宏定义:得到一个field在结构体(struct type)中的偏移量[转]

http://hi.baidu.com/tian_20032242/blog/item/77fd7afa5ffcc29d59ee90ba.html #define OFFSETOF(ty...

得到一个field在结构体(struct type)中的偏移量

宏定义:得到一个field在结构体(struct type)中的偏移量 #define OFFSETOF(type, field) ((size_t)&(((type *)0)->fi...

得到一个field在结构体(struct type)中的偏移量

宏定义:得到一个field在结构体(struct type)中的偏移量 #define OFFSETOF(type, field) ((size_t)&(((type *)0)->field)...

得到一个field在结构体(struct type)中的偏移量

宏定义:得到一个field在结构体(struct type)中的偏移量 #define OFFSETOF(type, field) ((size_t)&(((type *)0)->f...

计算结构体成员偏移量

问题写一个宏计算出结构体成员的偏移量。 假设有如下一个结构体,要计算成员c的在结构体中的偏移量。typedef struct Type_t{ char a; // 0 int b;...

不实例化结构体获取结构体成员在结构体中的偏移量

OFFSET宏其实在我们数据采集程序里面yo

从Linux内核代码中学习获得结构体成员偏移量的方法

作者:阿波链接:http://blog.csdn.net/livelylittlefish/article/details/9750593(几年前的一篇文章,翻出来共享一下。)Content0. 引子...

结构体成员偏移量,标准C其实有定义宏实现

结构体成员偏移量,标准C其实有定义宏实现今天看书了解到,坛子里已经不止一次有人提到这个问题了 #undef offsetof #ifdef __compiler_offsetof #define...
  • swgshj
  • swgshj
  • 2012年09月01日 23:48
  • 1236
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算出任意struct的某个成员的偏移量
举报原因:
原因补充:

(最多只允许输入30个字)