通过宏定义取结构本中成员的偏移量

原创 2015年07月09日 09:12:52
#define find(struc,e) (size_t) &((struct struc*)0)->e

struct struc{};

(struct strc*)将strc为一个结构体指针,指向地址为0的位置,

取结构体成员变量的地址,

然后将其强制转换成int型。

因为起始地址为0,所以成员成变的地址就是它的偏移量。

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

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

宏定义求结构体某个变量相对其偏移量的问题

程序员面试宝典的问题之一,做的时候觉得有些小问题不懂,就搜了一下,整理整理,再加一点自己的理解。 题目: 用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量 如:s...

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

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

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

结构体成员偏移量,标准C其实有定义宏实现今天看书了解到,坛子里已经不止一次有人提到这个问题了 #undef offsetof #ifdef __compiler_offsetof #define...
  • swgshj
  • swgshj
  • 2012年09月01日 23:48
  • 1234

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

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

结构体成员偏移量的计算

一、先来一段理论知识         ANSI C标准允许任何值为0的常量被强制转换成任何一种类型的指针,并且转换结果是一个NULL指针,因此((s*)0)的结果就是一个类型为s*的NULL指针...

计算结构体成员偏移量

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

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

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

获取类成员偏移量

第一种方式是MFC里使用广泛的宏:对空对象成员取地址#define OFFSET(structure, member) ((int)&((structure*)0)->member); 正如我们平时通...
  • QQIANQQ
  • QQIANQQ
  • 2011年01月17日 11:29
  • 841
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过宏定义取结构本中成员的偏移量
举报原因:
原因补充:

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