C学习笔记 7 写出一个宏,求任意结构体成员相对于结构体首地址的偏移。
2011-04-01 20:49
344 查看
写出一个宏,求任意结构体成员相对于结构体首地址的偏移。
#define _____________________
#define STRUCT_OFFSET(id, element) (( unsigned long ) &(( struct id*) 0 )->element)
因为是求偏移量 所以假设结构体的首地址是0开始,把他转换成结构体指针类型,在用-》取得他的成员,前面加了一个& 就是取得这个成员的地址,最后在强制转换成unsigned long,这样就得到了偏移量。
#define _____________________
#define STRUCT_OFFSET(id, element) (( unsigned long ) &(( struct id*) 0 )->element)
因为是求偏移量 所以假设结构体的首地址是0开始,把他转换成结构体指针类型,在用-》取得他的成员,前面加了一个& 就是取得这个成员的地址,最后在强制转换成unsigned long,这样就得到了偏移量。
相关文章推荐
- 使用宏定义来获取一个结构体成员相对于该结构体首地址的偏移量
- 结构体成员地址在结构体内的偏移
- [Linux网络编程学习笔记]套接字地址结构
- 微信公号“架构师之路”学习笔记(五)-数据库扩展性架构设计(水平切分,秒级扩容,平滑迁移,在线表结构变更,一个大数据量多属性高并发的数据库设计等)
- 通过结构体某个成员的地址计算结构体首地址[转]
- 通过结构体某个成员的地址计算结构体首地址[转]
- C#2005 .NET3.0高级编程学习笔记————类和结构,类的数据成员,类的函数成员(方法、属性)
- C#传递结构体地址(或者结构体成员的地址)给C/C++ DLL
- django学习笔记---结合cookie,onchange事件写出一个分页
- C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
- Java学习笔记——面试常客:写出一个死锁的例子
- 如何通过一个结构体成员变量的地址找到该结构体的首地址
- 长度为0的数组只用在结构体的最后一个成员,用以做一个地址标记,以后用。
- C语言--通过结构体成员的地址获取结构体变量的地址
- #TensorFlow 学习笔记# 01 Start 一个完整的TensorFlow网络结构
- 【LibUIDK界面库系列文章】计算结构体中成员相对this的偏移
- 如何知道结构体中某个成员相对结构体开始的偏移
- 如何计算结构体大小和结构体中成员的内存偏移
- 前端攻城狮学习笔记一:实现一个遍历数组或对象里所有成员的迭代器
- 如何通过结构体中的任意一个元素的地址得到这个结构体的首地址(container_of)