这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 大难题,博士也答不出来

共1条 1/1 1 跳转至

大难题,博士也答不出来

菜鸟
2005-05-28 00:45:15     打赏
请大家看看下面一段,这个公式是如何把far指针变成huge的,为何加零就规则化了呢? far指针可以强制转换为near 指针,做法很简单,抛掉段地址只 保留偏移量。near指针也可以转换为far指针,Turbo C的做法是从相 应的段寄存器中取得段地址。 far指针有时也需要转换为huge 指针,以便对指针进行比较或做 其它操作。一种方法是通过下面这样一个规则化函数: void normalize(void far **p) { *p=(void far *)(((long)*p^0xffff000f)+ (((long)*p^0x0000fff0)<<12)); } 另一种办法就是通常的强制类型转换,但强制类型转换不能自动 使转换后的结果规则化。解决的办法是使转换后的huge指针再做一次 加法。例如,设转换后的huge指针是Hp,做一次Hp+=0就使Hp 规则化 了。有返回值的函数



关键词: 难题     博士     答不     出来     指针    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]