最近看嵌入式文件系统TFFS的源码,看到far关键字,基础不好,惊呆了。。。

/*Specify here which pointers may be far, if any.

*Far pointers are usually relevant only to 80x86 architectures.

*/

下面是网上盗来的说法,大致上了解一下:

far即为远地址,16位模式下(如80x86系列)内存是分段寻址的; (一个段就是 2^16,即64k)

指定void   far   fun1();的话,是说函数fun1的入口点在其它段中,调用时将用到段地址;

如果指定为near的话,入口点将在本段之内,调用时值使用段内的偏移地址。

32位中采用线性的平坦寻址方式,这一概念已被抛弃了,内存中地址统一为32位宽,大体

说来就是这样,细节参见相关资料

near、far、huge关键字的真正含义是什么?

这三个关键字只能用于修饰函数、全局变量和指针变量,对于非指针类型的局部变量,这些关键字没有实际意义。

这些关键字用于修饰函数时,huge的含义与far相同,用于指明该函数的调用方式为far调用方式,即调用时需要一个段值和一个段偏移组成的32bits调用地址,使用far call进行跳转,跳转前先压栈保存当前CS:IP。near修饰函数时,用于指明该函数的调用方式为near调用方式,调用时只需要一个16bits的近地址,即当前CS的段内偏移。

当这三个关键字用于修饰指针时,nea

far在c语言中作用,C语言中的far关键字相关推荐

  1. c语言scanf中 作用,c语言中scanf的用法

    c语言中scanf的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中scanf的用法的用法,希望对你们有用. c语言中scanf的用法的用法如下: printf和scan函数的使用方法 一 pr ...

  2. c语言malloc作用,c语言中malloc是什么?怎么用?

    c语言中malloc是什么?怎么用? malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size); 说明: [参数说明] size 为需要分配的内存空 ...

  3. c语言int作用,c语言中int的用法

    C/C++编程语言中,int表示整型变量,是一种数据类型,下面学习啦小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. c语言中int的用法:整型int C 语言提供了很多整数类型(整型), ...

  4. c语言bit作用,c语言中bit的用法

    c语言中bit的用法 发布时间:2016-03-09   计算机英语  编辑:长思 C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现.下面小编就跟你们详细介绍下c语言中bit ...

  5. php语言中$意思,PHP语言中的lt;gt;符号是什么意思?

    运算符的种类c语言的运算符可分为以下几类: 1.算术运算符用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(或称模运算,%).自增(++).自减(–)共七种. 2.关系运算符用于比较 ...

  6. c语言int作用,c语言中int的用法有哪些

    c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...

  7. sizeof 在C语言的作用,C语言中的sizeof的用法详解

    C语言中的sizeof的用法详解 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操 ...

  8. c语言 strcpy作用,c语言中strcpy的用法

    c语言中strcpy的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中strcpy的用法的用法,希望对你们有用. c语言中strcpy的用法的用法如下: strcpy原型声明:extern ch ...

  9. long在c语言的作用,c语言中long代表什么意思

    c语言中long代表什么意思 发布时间:2020-04-26 14:07:04 来源:亿速云 阅读:970 作者:小新 c语言中long代表什么意思?相信有很多人都不太了解,今天小编为了让大家更加了解 ...

最新文章

  1. 中国移动用户能不能用WCDMA网?(世界杯与通信2)
  2. Tomcat unable to start within 45 seconds.
  3. 分布式内存数据库 Geode
  4. requestLayout 无效
  5. 【计算机网络(微课版)】第2章 物理层 课后习题及答案
  6. VTK:PolyData之FieldData
  7. 艾伟_转载:使用Lambda表达式编写递归函数
  8. 那些拧不开瓶盖的女生全都是装的?理工男这样想......
  9. 19 MM配置-BP业务伙伴-定义编码范围
  10. 找call的万能方法,一招通杀所有网络游戏【个人实践出来的】
  11. 让电脑代码满屏飞_程序员想让你的电脑死机,需要多久?
  12. Open3d之坐标变换
  13. 01-老马jQuery教程-jQuery入口函数及选择器
  14. global mapper导出影像范围
  15. 九大知识领域与五大过程组
  16. 华东师范大学计算机与电子科技大学比较,报录比
  17. 流氓与骗子的斗嘴(转)
  18. 当你觉得焦虑,烦躁的时候怎么办?
  19. csgo跳投指令_CSGO控制台进阶指令
  20. 【云原生】设备入云之FlexManager主流控制器读写

热门文章

  1. 《Python从入门到实践》读书笔记——第五章 if语句
  2. 银河麒麟V10操控系统Qt安装
  3. 视频服务器(8) Kurento[3] unity客户端
  4. python3.6安装包下载_Python 3.6.6安装教程(附安装包) | 我爱分享网
  5. 诚聘软件过程工程师,高级软件工程师,软件开发工程师
  6. 安卓9.0设置WIFI静态IP地址。
  7. 机器学习 2014斯坦福大学课程: 4-1 神经网络
  8. 微商和微信营销遇到的问题 转载
  9. Three.js加载三维管线的简单思路
  10. FreeMind无法打开