写出一个宏,求任意结构体成员相对于结构体首地址的偏移。
#define _____________________
#define STRUCT_OFFSET(id, element) (( unsigned long ) &(( struct id*) 0 )->element)
因为是求偏移量 所以假设结构体的首地址是0开始,把他转换成结构体指针类型,在用-》取得他的成员,前面加了一个& 就是取得这个成员的地址,最后在强制转换成unsigned long,这样就得到了偏移量。
C学习笔记 7 写出一个宏,求任意结构体成员相对于结构体首地址的偏移。
最新推荐文章于 2022-09-07 22:11:53 发布