首页 > 其他 > 详细

char FAR * h_name中的FAR

时间:2015-02-11 09:14:59      阅读:265      评论:0      收藏:0      [点我收藏+]

 FAR 是16位系统时候的概念了,代表远指针的意思。

近指针是16位的指针,它只表示段内的偏移地址,因而只能对64k字节数据段内地址进行存取。

 

  如 char near *p;

 

  p=(char near *)0xffff;

 

  远指针是32位指针,它表示段地址:偏移地址,如定义远程指针p指向B500段的2号地址,即B500:0002,则可写作:

 

  char far *p;

 

  p=(char far *)0xB5000002;

 

  因此,远指针可以进行跨段寻址,可以访问整个内存的地址。

     16位系统有远近指针之分的环境中,得告诉编译器指针变量h_name强制使用远指针方式。因为16位系统寻址范围只有2^16=64K,所以用FAR指针,再加上16位,高16位存放的是变量的段地址,低16位存放变量的段内偏移。

char FAR * h_name中的FAR

原文:http://www.cnblogs.com/snowxshy/p/4285270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!