2019独角兽企业重金招聘Python工程师标准>>>

C语言里的near和far是什么意思?-CSDN论坛-CSDN.NET-中国最大的IT技术社区
http://bbs.csdn.net/topics/390275885

32位系统中已经没有用了,16位才有用。
近指针、远指针,这是16位CPU造就的怪胎。32位以上的CPU没这玩意。

16位CPU(主要指80386和80486)内部数据总线为16位,地址总线为24位。这就意味着一个字(16bit)存不下一个地址,要用到两个字。习惯把高位字称为段地址,低位字称为偏移地址。

程序运行时,OS会给程序分配几个内存段供程序使用,主要的有代码段(CS)、数据段(DS)、堆栈段(SS)。根据不同的编译模式这几个段可能重合。

far 远跳转/指针,它会带一个段前缀。near 没有段前缀。

当指针指向的地址与数据段的段地址相同(即处于数据段内),这时可以不记录段地址而仅记录偏移地址(只需16bit)。这种指针称为近指针(near指针)。在16位CPU下,缺省的指针类型。

当指针指向的地址与数据段的段地址不同(即处于数据段外),这里不仅要记录偏移地址还要记录段地址(共需32bit)。这种指针称为远指针(far指针)。

===================

在visual studio中的minwindef.h文件中对far和near的定义如下:

#undef far
#undef near

#define far
#define near

这充分说明在32位系统下,far、near已经无效了。

================

C语言近程型(near)和远程型(far)的区别是什么?_C语言中文网
http://c.biancheng.net/cpp/html/1685.html

因为DOS使用的是段地址结构寻址机制,所以近程型和远程型数据的概念是运行DOS的PC机所独有的。其它操作系统,例如UNIX和Wndows NT,使用的是平面地址机制,没有近程型或远程型限制。

感觉far和near应该是只与CPU位数有关的东西,在目前32位、64位CPU大行其道的情况下,它们已经成了历史。

转载于:https://my.oschina.net/ray1421/blog/703298

C/C++语言里的near和far是什么意思?相关推荐

  1. ebnf描述c语言语句结构,EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则...

    Presentation on theme: "EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构:并用操作语义的方法描述对应的语义规则"- Pre ...

  2. c语言里变量列表,嵌入式C语言里的土豪们之变量类型

    嵌入式C语言里的土豪们之变量类型本文引用地址:http://www.eepw.com.cn/article/184332.htm 上一篇我们谈到了运算奢华大户除法(详见<嵌入式C语言里的土豪们之 ...

  3. c语言sqlist结构体,c语言里 sqlist

    满意答案 cielkong 2018.08.12 采纳率:43%    等级:9 已帮助:463人 c语言里 sqlist?//定义顺序表L的结构体 typedef struct { Elemtype ...

  4. C语言中负数补码的方法,c语言里求负数补码的总结不足与优点.docx

    c语言里求负数补码的总结不足与优点 看C语言编码转换--------负数的二进制表示方法 XX-09-0710:49:17|分类:|标签:|举报|字号订阅 今天在看C语言编码转换时,既然对负数的二进制 ...

  5. Go 语言里怎么正确实现枚举?答案藏着官方的源码里

    在编程领域里,枚举是用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机.拿一个实体对象的状态机来说,它通常与这个对象在数据库里对应记录的标识状态的字段值相对应. 在刚开始学编程 ...

  6. 聊聊在Go语言里使用继承的翻车经历

    Go不是面向对象的语言,但是使用组合.嵌套和接口可以支持代码的复用和多态.关于结构体嵌套:外层结构体类型通过匿名嵌套一个已命名的结构体类型后就可以获得匿名成员类型的所有导出成员,而且也获得了该类型导出 ...

  7. 把别人的Tcl/Tk代码加入到Go语言里2 矩形

    为什么80%的码农都做不了架构师?>>>    a 从互联网得到的一段tcl/tk代码,把她加入到go语言里 package main import "github.com ...

  8. c语言2 amp 3结果,C语言里23=什么?

    C语言里2&3=什么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言里2&3=什么? 这个是按位 ...

  9. c语言里什么叫double,c语言double什么意思

    本文收集整理关于c语言double什么意思的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中double是什么意思啊? double是指双精度浮点数类型.float指单精度浮点数类型.它 ...

最新文章

  1. centos7 中文乱码问题解决方法
  2. java面向对象(二)之继承
  3. Quartz.Net 使用
  4. java用JDBC连接数据库的方式
  5. |ViaVoice(IBM语音识别输入系统)下载v9.1官方版 - 欧普软件下载
  6. Windows中安装Electron说明
  7. 处理键盘上升盖住文本框问题
  8. 小米洗手机拆解自动关机
  9. 字节游戏测试开发面试题
  10. 120日均线金叉250日均线是大牛市来临的重要信号
  11. 如何度量两幅图像的相似度--结构相似度 SSIM 原理及代码
  12. 【PC】解决访问小米路由器外接硬盘需要密码/无密码访问小米路由器共享盘
  13. 微信小程序初始化NPM
  14. 【自翻】光线追踪的简介:创作3D图片的简单方法
  15. (下)开发一款微信小程序的个性简历,能打开大厂之门并获得门票?(附源码)
  16. 大数据平台资源治理经验总结
  17. 读书笔记:多智能体机器学习(二)
  18. 计算机运算和控制核心的简称,计算机的核心是什么
  19. 如何修正XY轴不垂直误差
  20. css+jq实现简单万花筒滚动效果

热门文章

  1. 初探SQL Server 2008商业智能
  2. 安装sql server 2000
  3. Java输入/输出流体系中常用的流分类
  4. 校验输入的两次密码是否一致的问题
  5. regini.exe使用方法
  6. 关于ElasticSearch处理过滤条件
  7. h5页面生成图片分享到微信js_html2canvas 动态生成微信分享海报的优质js库
  8. httpsurlconnection 写不进去authorization值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?...
  9. android 通知_Android 全局消息通知框架实现(类似EventBus)
  10. 2021宣城职业技术学院对口高考成绩查询,2021年宣城职业技术学院高考录取通知书查询 通知书什么时候可以收到...