宏定义求结构体内变量偏移
2010-11-15 21:33
716 查看
#define structoff(s, a) (&((struct s*)0)->a) /**< 使用方法:structoff(结构名, 元素名) */
#define structoff_var(v, a) ((char*)&v.a - (char*)&v) /**< 使用方法:structoff_var(结构变量名,元素名) */
#define structoff_ptr(p, a) ((char*)&(p)->a - (char*)(p)) /**< 使用方法:structoff_ptr(结构变量指针,元素名) */
#define structoff_var(v, a) ((char*)&v.a - (char*)&v) /**< 使用方法:structoff_var(结构变量名,元素名) */
#define structoff_ptr(p, a) ((char*)&(p)->a - (char*)(p)) /**< 使用方法:structoff_ptr(结构变量指针,元素名) */
相关文章推荐
- 数据结构:(更新中)成员变量、成员函数和实例一般命名和定义方法
- Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL
- 递归:从尾到头输出链表& 从尾到头输出一个字符串 & 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL
- 重载结构体内<号 定义结构体大小比较
- vs2005定义结构体类的全局变量
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- iOS 结构体 定义变量注意事项以及保存到数组与读取
- Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL
- 在结构体内定义宏
- c offsetof-计算结构体内成员的偏移值
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- C常见问题之结构的声明和结构变量的定义方式
- Scala语言扫盲第二篇:变量定义与控制结构
- list_entry(ptr, type, member)——知道结构体内某一成员变量地址,求结构体地址
- 结构变量的定义
- C和指针之结构体大小和成员变量位置距离结构开始存储的位置偏移字节
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- 数据结构1.预定义类型和变量
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--预定义变量