| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2402 人关注过本帖
标题:谁能教下FAR CHAR * 和CHAR * 有什么区别??
只看楼主 加入收藏
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
FAR 远程指针的确是32位的指针,它可以指向任何数据段内的地址,在大内存的模式下可以度曲64K以外的数据.

但是好象FAR的范围也不能超过1M吧!!!!!!

淘宝杜琨
2004-09-16 17:33
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

我不是不信你,而是你说的模糊,

就是32,16位,我还理解成处理器那!!

我也知道这个意思,但是具体的就不太清楚了!!神vLinux飘飘

说的也是很模糊,例如我的编译器有几种内存模式,是不是在不同的模式中才能对他们进行特定的处理

还是说他们根本就和内存模式没有关系那???

那什么时候需要用远指针,什么时候又不需要那????

我申请了远指针,近指针对它们可以在使用时一样处理么???

还有就是如果这个远指针可以进行更大方面的内存处理,我要别的大的内存模式

又有什么用???

数组我可以用远指针,函数也可以!!!!

请明示!!

[此贴子已经被作者于2004-09-16 18:48:42编辑过]


差点把你忘了...
2004-09-16 18:46
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

这个涉及地址的知识,地址可表示为: 段址:偏移量

near所表示的指针地址为当前段内偏移量。

far指针采用段址:偏移量的方式指明地址,32位其中前16位是段址,后16位是偏移量。

但是far*只能在段内增减,当增减量超过FFFF时又回到开始部分.

这样又引伸出 huge指针,同样也是32位,但不同的是它避免far指针的不能跨段缺点。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-09-16 19:54
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

具体的用法可以提一下么,就是说什么时候需要用远指针???

什么时候不需要,原因是什么???还有就是函数远指针什么意思???


差点把你忘了...
2004-09-17 08:35
mikewolf
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2004-7-3
收藏
得分:0 

原则很简单:

如果需要切换段地址的话,就需要远指针。

简单的说如果程序代码区有多个段(每个段长度:64K),或者数据区有多个段的话,就需要远指针或者函数远指针。

函数远指针就是远过程调用问题,

远过程与近过程断点的设置与恢复(通过栈空间)是不同的:

对于近过程:函数调用或指针引用均压入偏移地址和所使用到的寄存器值,

在恢复时要引用压入栈中的值设置程序运行环境。

对于远过程:函数调用或指针引用,需要压入段地址和偏移地址以及所用到的

寄存器值,同样在恢复时要引用压入栈中的值设置程序运行环境。

要说二者的区别就是,远过程或远指针的引用较近过程或近指针的引用速度慢一些。

建议你最好看看汇编书籍!

并且对于程序区、数据区和堆栈区的安排,不同的编译模式是不同的,根据程序规模选择合适的编译模式是明智的,否则造成程序无法正常运行。

推荐书籍 王士元的《c高级适用程序设计》

不过要求是对于硬件、c和汇编比较熟悉!

说的很概略,不知道你能不能明白!

2004-09-18 16:31
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

收到!!!

谢谢!

王士元的《c高级适用程序设计》 我看过,不过是别人的,我现在没有,找书店也没有看到,

目前为止看不到了,你说的我都看过,理论上是了,不过因为没有实际的用过,所以不敢肯定的说,

同时,我的汇编知识越等于0!!!就知道一些理论的东西,要学习才行!


差点把你忘了...
2004-09-18 16:56
mikewolf
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2004-7-3
收藏
得分:0 
我的《dos编程大全》上有例程,不过,由于我在网吧,所以................!
2004-09-18 17:09
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

没听说过far char类型?为什么不是关键字?编译通不过啊?没有far关键字……

[此贴子已经被作者于2004-09-18 19:53:08编辑过]


2004-09-18 19:50
alex_chen
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-9-3
收藏
得分:0 
哦,这样子啊

2007-09-17 11:06
快速回复:谁能教下FAR CHAR * 和CHAR * 有什么区别??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025099 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved