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

前一阵子百度来校园招聘时的一道笔试题,该怎么解决

2012-02-06 
前一阵子百度来校园招聘时的一道笔试题#defineoffset(TYPE,MEMBER)(size_t&((TYPE*)0))- MEMBER问这个宏

前一阵子百度来校园招聘时的一道笔试题
#define   offset(TYPE,MEMBER)   (size_t   &   ((TYPE*)0))-> MEMBER
问这个宏是什么意思?



[解决办法]
应该是这样就好理解了:(size_t) & ((TYPE*)0)-> MEMBER
随后就像楼上的几位兄弟说的,通过偏移取成员再取地址,得其偏移。
当然也可以把0改成任意的数。只不过要将偏移的结果减去这个数。
[解决办法]
#define offset(TYPE,MEMBER) (size_t)(&((TYPE*)0)-> MEMBER)
写成这样要好点
那个不是与,失去地址,然后强制转换为 size_t 类型

热点排行