我在查c语言图形库函数时,原形里含有的“far”表示什么意思?

例如画线函数原形 void far line(int x0,int y0,int x1,int y1) 之中的”far“代表的含义?

哈哈 想了半天才想起来far是和near对应的,就是一般程序的函数调用都在64k地址范围内的,就是16位寻址就够了,但是当代码比较庞大时,16位就可能不够了.far就代表32位寻址,函数的本质就是个地址,指针的本质也是个地址,所以就有了寻址的问题,为了确认我还搜了一下呵呵 参见指针的:)

<P>    8、near指针和far指针<BR>在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。<BR>near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。<BR>far指针的长度是32位,含有一个16位的基地址和16位的偏移量,将基地址乘以16后再与偏移量相加,(所以实际上far指针是20位的长度。)即可得到far指针的1M字节的偏移量。所以far指针的寻址范围是1M字节,超过了一个段64K的容量。例如一个far指针的段地址为0x7000,偏移量为0x1244,则该指针指向地址0x71224.如果一个far指针的段地址是0x7122,偏移量为0x0004,则该指针也指向地址0x71224。
如果没有指定一个指针是near或far,那么默认是near。所以far指针要显式指定。far指针工作起来要慢一些,因为每次访问一个far指针时,都要将数据段或程序段的数据交换出来。另外,far指针的运算也比较反常,例如上面讲到的far指针指向同一个地址,但是比较的结果却不相同。
温馨提示:内容为网友见解,仅供参考
无其他回答

我在查c语言图形库函数时,原形里含有的“far”表示什么意思?
哈哈 想了半天才想起来far是和near对应的,就是一般程序的函数调用都在64k地址范围内的,就是16位寻址就够了,但是当代码比较庞大时,16位就可能不够了.far就代表32位寻址,函数的本质就是个地址,指针的本质也是个地址,所以就有了寻址的问题,为了确认我还搜了一下呵呵 参见指针的:)<P> 8、near指针和...

C语言中函数前面的far是什么意思
如果学过汇编应该知道近指针和远指针,far就是表示远指针,其实还有关键字near,near表示16位寻址,指针长度16位,far表示20位寻址,指针长度20位。在32位系统中,内存管理为4G平坦模式,统一用32位指针,因此far和near仅仅是兼容的需要。不少编译器都直接这样定义:define far define near ...

C语言中出现的far是什么意思
int far 或者 void far 表示要编译器给声明的这些量分配在 远处的存储器(RAM)中,即分配到 64K 以外的 存储地址中。64K 作为一个“段”(Segment),是 PC 机 80x86 时期的老概念。超过64K 就是 “远”, FAR 就是 “远”de 英文。编译器对near(近)和far(远)的处理略有不同。新的编译...

关于在C语言中,头文件中graphics.h中的void far _Cdecl circle(int...
在16位模式下,指针是16位的,指针的寻址空间只有64k,如果指定FAR,说明这个指针指向的地址要加上基地址,就是说用FAR可以指定64k以外的区域,现在已经没用了。__cdecl关键字说明按从右至左的顺序压参数入栈,由调用者把参数弹出栈。实现是在库文件中。也就是lib文件,lib文件是不对外公开的,不能查看...

在C语言程序组里面看见 “@far”。问下“@”是什么意思,其什么作用
非标准C的@far 和COSMIC 的 C编译器相关联的 在STM8中,指定地址的长度可以有3种方式,@tiny使用1个字节表示地址,只能寻址地址范围0x00~0xFF;@near使用2个字节表示地址,只能寻址地址范围0x0000~0xFFFF;@far使用3个字节表示地址,寻址地址范围0x000000~0xFFFFFF ...

看C语言文档,函数的参数代表什么意思printf(const char *format, arg...
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数 c 单个字符 s 字符串 S wchar_t字符(宽字符)类型字符串 显示百分号本身 p 显示一个指针,near指针表示为:XXXX far 指针表示为:XXXX:YYYY n 相连参量应是一个指针,其中存放已写字符的个数 2.flags 规定输出...

c语言 图形函数
void far initgraph(int far *gdriver, int far *gmode, char *path); 其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所 在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。 图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形 适配器有不同...

有哪位老大能告诉我 计算机图形学中关于圆与椭圆的生成算法的源程序
void far initgraph(int far *gdriver, int far *gmode, char *path);其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形适配器有不同...

C语言图形模式下。怎样做到动态显示一个变量?
1,在onPaint消息的响应里面 显示你的分数 2,当分数会改变时,invalidate分数的区域,让系统重画。

c语言常用函数有哪些?主要掌握的要点是什么
cgets()读字符串函数原形:char *cgets(char *str)功能:从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。注意:在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。实际字符串内容从str[2]开始,以空字符(\\0)结尾。返回值:...

相似回答