码迷,mamicode.com
首页 > 其他好文 > 详细

char FAR * h_name中的FAR

时间:2015-02-11 09:17:17      阅读:136      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!