CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

那位大虾解释一下远指针?

楼主woshialber(吴斐)2004-05-03 11:13:12 在 C/C++ / C语言 提问

最近在学习socket的编程中查看一些结构体(如hostent)时发现这种定义  
  char   FAR*,char   FAR   FAR**的定义?  
  这是啥意思啊?这和char*,char**有什么不一样吗?      
  问题点数:50、回复次数:14Top

1 楼cngdzhang()回复于 2004-05-03 11:22:05 得分 40

远指针far和近指针near是相对的  
   
  如果不特别说明far,那么默认的是近指针  
   
  远指针指的是不在同一个段中的指针  
  近指针指的是在同一个段的指针  
   
  Top

2 楼woshialber(吴斐)回复于 2004-05-03 11:29:14 得分 0

to   cngdzhang   :  
  可否说的详细点?  
  恩,比如说:什么情况下要用远指针?为什么hostent这个结构体要用到char   FAR*?Top

3 楼cngdzhang()回复于 2004-05-03 11:32:10 得分 0

这个段指的是64k的段  
   
  在tc中  
   
  #include   <stdio.h>  
   
  void   main()  
  {  
        char   far   *pfc;  
        char   *pc;  
        printf("%d       %d",sizeof(pfc),sizeof(pc));  
   
  }  
   
  程序的输出结果是  
  4   2  
  由此可知远指针是32位的,近指针是16位的  
   
  16位的寻址范围是2^16=64K  
  为了能访问别的段必须由32位的指针进行访问,  
  这32位包括了16位段地址,16位偏移地址  
  Top

4 楼cngdzhang()回复于 2004-05-03 11:40:06 得分 0

在tc中  
  有模式tiny   small  
  代码段和数据段都是小于64K的,所以用near指针就可以访问  
   
  但是,一旦数据或代码超过了64K(比如,我的程序特别长,或我定义了好多数组,总大小超过了64k,那么这些数据或代码就不可能在同一个段(64K)里面了,要访问这些数据就必须用远指针了  
   
  hostent这个结构体  
  我不太清楚:(  
  Top

5 楼antijpn(antijpn)回复于 2004-05-03 13:01:33 得分 2

在32bit环境里面都是32bit的指针,原来应该还有个巨指针,也是32bit的,没什么区别了  
   
  hostent应该是包含host信息的结构吧?Top

6 楼liushuaiboy(标准菜鸟)回复于 2004-05-03 13:41:13 得分 0

markTop

7 楼julyclyde(Java初学(大学不教只好自己学))回复于 2004-05-03 13:42:40 得分 1

过时了  
  inside   VC++说现在已经不分远近了Top

8 楼woshialber(吴斐)回复于 2004-05-03 16:51:12 得分 0

十分感谢各位高手的指点,尤其是cngdzhang大虾:)  
  我是第一次在这里提问题,得到这么多的帮助十分高兴  
  可是我怎么找不到,结贴和给各位加分的按钮阿:(。  
  Top

9 楼cngdzhang()回复于 2004-05-03 16:56:52 得分 0

不客气  
   
  结帖  
  点下面的   管理   连接Top

10 楼woshialber(吴斐)回复于 2004-05-03 16:57:22 得分 0

to   julyclyde(ASP版社区之星):是不是在win32下就没有远指针了阿?  
  to   antijpn(antijpn):是啊是啊,hostent应该就是包含host信息的结构  
  to   cngdzhang:怎么给你加分阿:(。Top

11 楼cngdzhang()回复于 2004-05-03 16:59:43 得分 0

win32   用的是保护模式  
  直接用的是32位指针,寻址范围为2^32=4GB  
  当然没有远近指针之分了Top

12 楼cngdzhang()回复于 2004-05-03 17:05:33 得分 0

在这个网页最下面  
  的  
   
    管理   |   关闭窗口      
     
     
  看到了吗?  
   
  不用谢:)Top

13 楼julyclyde(Java初学(大学不教只好自己学))回复于 2004-05-03 19:11:37 得分 0

我也不懂。只是看书上说的已经没有了Top

14 楼dongni386(冬妮)回复于 2004-05-03 19:54:35 得分 7

<<C语言高级实用教程>>(清华大学出版社 1992)上面讲的很详细.汇编方面的书  
  应该也有介绍Top

相关问题

  • 谁能帮我解释一下远指针和近指针的区别?
  • 那位能解释一下为什么指向引用的指针非法?
  • 关于指针的解释
  • 帮我解释一下,,,,指针变量。
  • 指针问题,谁能给点解释??
  • 给我解释一下指针
  • 能否详细解释一下指向指针的指针??必重谢!(if to the point)
  • 指针~!!又是指针~~~!!!那位高手能够解决这个问题!!!
  • 指针:看看,比较有意思,谁个解释一下。
  • BITMAP结构中LPVOID bmBits指针求详细解释!!!!!!!!!!!!!

关键词

  • win32
  • 指针
  • 结构
  • 代码
  • 数据
  • cngdzhang
  • hostent
  • far
  • 应该
  • 阿

得分解答快速导航

  • 帖主:woshialber
  • cngdzhang
  • antijpn
  • julyclyde
  • dongni386

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo