首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

【求指点】哪位高手能帮忙看一下这个宏定义的功能是什么?多谢

2013-07-01 
【求指点】谁能帮忙看一下这个宏定义的功能是什么?谢谢宏定义如下: #define func(s.m)(size_t)(&(((S*)0)-m

【求指点】谁能帮忙看一下这个宏定义的功能是什么?谢谢
宏定义如下: 
#define func(s.m)  (size_t)(&(((S*)0)->m))(*在S的右上角)
[解决办法]
#define offsertof(s,m) (size_t) &(((s*)0)->m)
 这个宏的功能是求成员m相对于结构体s的相对位置。
 &(((s*)0)->m):(s*)0:将地址0转换为结构体指针
 ((s*)0)->m:获取上述结构体的成员变量m
 &(((s*)0)->m):获取上述成员变量m的绝对地址
 因为s的地址为0,所以上述绝对地址可以认为是成员变量m相对于结构体s的相对位置

热点排行