near指针和far指针?

在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。

near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。

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指针指向同一个地址,但是比较的结果却不相同。

什么时候使用far指针?

当使用小代码或小数据存储模式时,不能编译一个有很多代码或数据的程序。因为在64K的一个段中,不能放下所有的代码与数据。为了解决这个问题,需要指定以far函数或far指针来使用这部分的空间(64K以外的空间)。许多库函数就是显式地指定为far函数的形式。far指针通常和farmalloc()这样的内存分配函数一起使用

%dn在c语言中是什么意思,请问C语言中 char far 是什么意思?相关推荐

  1. c语言中尖括号的作用,C语言中,#include

    C语言中,#include 头文件中的尖括号可以用双引号""代替吗?那还可以用圆括号代替呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后 ...

  2. %f在c语言中是什么意思,在C语言中,%d,%c,%f都是什么意思,请详细的说一下,谢谢了...

    满意答案 huluzhubao 推荐于 2017.11.26 采纳率:40%    等级:12 已帮助:5759人 printf函数调用的一般形式 printf函数是一个标准库函数,它的函数原型在头文 ...

  3. c语言中怎么定义一个指针,C语言中,定义一个指针的时候为这个指针开辟...

    2016-08-03 10:00齐景宪 客户经理 区别:C语言把内存划分成四个区,它把一般的变量和数组等存在于内存中的栈区,所以数组在C语言的定义中只是一组同类型的普通变量,即使这个变量有可能是指针. ...

  4. goto在c语言中的作用,为什么在C语言中,goto这么不受待见?

    原标题:为什么在C语言中,goto这么不受待见? 什么是goto语句 goto语句被称为C语言中的跳转语句.用于无条件跳转到其他标签.它将控制权转移到程序的其他部分. goto语句一般很少使用,因为它 ...

  5. c语言中什么是指针初始化,C语言中的“char指针初始化”是什么意思?

    满意答案 gqtywh 推荐于 2019.10.06 采纳率:53%    等级:8 已帮助:60人 char 指针,也就是char *类型. 其初始化本质上与其它变量初始化没有什么区别,就是赋予其一 ...

  6. static在c语言中是什么意思,在C语言中static有什么含义

    2019-10-10阅读(64) 最主要有两点用途.让一个变量长期有效,而不管其是在什么地方被申明.比如:intfun1(){staticints_value=0;....}那么fun1不管在什么地方 ...

  7. c 语言中字符串是什么意思,c语言中string是啥意思啊? 控制啥的啊?

    侃侃尔雅 C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入.输出.合并.修改.比较.转换.复制.搜索几类. 使用这些函数可大大减轻编程的负担.用于输入输出的字符串函数, 在使用前应包含头文件 ...

  8. c语言中如何正确使用union,C语言中的union使用方法

    共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量. 在union中,全部的共用体成员共用一个空间. 而且同一时间仅仅能储存当中一个成员变量的值. 1.union中能够 ...

  9. c语言中字符数字加'0',C语言中的NULL与转义字符'\0'以及数值0的关系

    以下两种只是一个巧合,只不过地址值的数值为0而已.0本身只不过是一个可以显示的字符,与内存并没有直接关系.在0与ASCII表中关联NULL做了关联,这样使得输入转义字符'\0',也可以将一个变量赋值为 ...

最新文章

  1. netmon工作原理
  2. 线性回归最小二乘法和梯度下降法-详细
  3. Go 语言的%d,%p,%v等占位符的使用
  4. Linux下的各文件夹的作用(转)
  5. linux运行星际争霸1
  6. yaml加配置文件后起不来_YAML配置文件管理资源
  7. 通俗理解数字签名,ssl数字证书和https
  8. 并联串联混合的电压和电流_高考物理常考实验之电流表改装电压表怎么串联电阻...
  9. 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
  10. android执行命令行取得结果,Android调用shell脚本并取得输出
  11. python ssh登录交换机_python使用paramiko模块通过ssh2协议对交换机进行配置的方法...
  12. 大学数学实验习题--统计推断 03(附答案)
  13. Chapter7:非线性控制系统分析
  14. 论文阅读笔记—Exploring Visual Relationship for Image Captioning
  15. java数组的结构_详解Java数组结构
  16. Java高并发编程中Phaser的使用及详细介绍-刘宇
  17. 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数
  18. user-scalable=no 控制手机版浏览器网页分辨率
  19. Linux就这个范儿 第14章 身在江湖
  20. Python 计算思维训练——输入和错误处理练习(二)第三关

热门文章

  1. axure选中后横线切换_Axure8.0|动态面板内容简单切换技巧
  2. postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...
  3. python 量化交易_基于Python的量化交易工具清单(上)
  4. 机器学习回归算法—岭回归及案例分析
  5. django简介及环境搭建
  6. redis和mysql数据不一致_高并发下为什么 redis 和数据库不一致?怎么解决?
  7. pygame render怎么显示中文_Pygame游戏——贪吃蛇(完结)
  8. python异常数据处理_Python爬虫提高之异常处理
  9. 做CV和做NLP,是否都有光明的未来?
  10. 从零搭建基于知识图谱的问答系统(以医疗行业为例)