当前位置: 代码迷 >> C语言 >> 谁能教下FAR CHAR * 和CHAR * 有什么区别??
  详细解决方案

谁能教下FAR CHAR * 和CHAR * 有什么区别??

热度:525   发布时间:2004-09-16 17:33:00.0
FAR 远程指针的确是32位的指针,它可以指向任何数据段内的地址,在大内存的模式下可以度曲64K以外的数据.

但是好象FAR的范围也不能超过1M吧!!!!!!
----------------解决方案--------------------------------------------------------

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

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

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

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

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

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

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

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

又有什么用???

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

请明示!!

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


----------------解决方案--------------------------------------------------------

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

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

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

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

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


----------------解决方案--------------------------------------------------------

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

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


----------------解决方案--------------------------------------------------------

原则很简单:

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

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

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

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

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

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

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

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

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

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

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

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

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

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


----------------解决方案--------------------------------------------------------

收到!!!

谢谢!

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

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

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


----------------解决方案--------------------------------------------------------
我的《dos编程大全》上有例程,不过,由于我在网吧,所以................!
----------------解决方案--------------------------------------------------------

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

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



----------------解决方案--------------------------------------------------------
哦,这样子啊
----------------解决方案--------------------------------------------------------
  相关解决方案