what a confusing express

black_snail 2002-09-25 07:00:12
char far *tab;
(*((unsigned *)&(fp))) = 0;

What is this mean ?
...全文
57 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
blh 2002-09-25
  • 打赏
  • 举报
回复
将char far *类型的tab先转换成为unsigned *后将指针指向NULL
可以这样看
char far *tab;
(*((unsigned *)&(tab))) = 0;
==〉
char **pc = &tab;
unsigned *pu = (unsigned *)pc;
*pu = 0;
Zark 2002-09-25
  • 打赏
  • 举报
回复
这是为了兼容16位操作系统而用的,你大可不必管它,这的确相当于
tab='\0';
作用是初始化指针.

far 在32位已不用,在16位里的意思是本指针的寻址范围超过了64K,你知道16位的系统中,如果直接寻址,最大只能是64K,对不对?
punpuny 2002-09-25
  • 打赏
  • 举报
回复
相当于tab = 0
icecools 2002-09-25
  • 打赏
  • 举报
回复
&(tab):取得tab指针的地址,就是指向字符指针的指针
(unsigned *)&(tab)):再把这个地址转为指向unsigned的指针
后面是把它置为0
它到底想干什么我不清楚,不会是搞破坏吧?!
black_snail 2002-09-25
  • 打赏
  • 举报
回复
sorry

it should be
(*((unsigned *)&(tab))) = 0;
sandrowjw 2002-09-25
  • 打赏
  • 举报
回复
这——是赋值吗?
这里的far是什么意思?不明白
icecools 2002-09-25
  • 打赏
  • 举报
回复
fp的定义在哪里?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧