zoukankan      html  css  js  c++  java
  • C/C++中near和far的区别

    C/C++中near和far的区别

          关键字nearfar受目标计算机体系结构的影响。目前编程中使用不多。

         near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在0x0000~0x00ff范围中。

         int near * ptr

         far关键字创建一个能够指向内存中任何数据的指针:

         char far * ptr

      near  ()指针:16位段内偏移地址   

      far()指针:16位段地址+16位段内偏移地址   

      huge()指针:32位规格化的具有唯一性的内存地址  

      C语言的存贮属性由六种编译模式决定(参见TC集成环境菜单中的option->compiler->model选项),默认的编译模式为 small,   在该编译模式下,指针的默认属性为near

    补充:near指针是16位指针,依赖一个段地址寄存器,指针变量就是位移量,利用段地址寄存器+指针来寻址,所以有64K之限制。

            far 指针是32位指针,不但有16位的位移量,还有16位的段地址,但此指针有个缺陷,增量时只加到位移部分,一旦16位的位移量超过了FFFF就会回到这个段地址的初始。

             所以,又引入了huge指针,huge指针与far一样,其区别仅在于使用了标准化的方法来表示,这样所有的地址都有一个唯一的表示方法,从而避免了far指针的问题。

             空指针规定了一种指针状态,如果没有这个空指针,就如数字没有了0

    http://blog.csdn.net/u013394556/article/details/38703821

  • 相关阅读:
    LeetCode 242. Valid Anagram (验证变位词)
    LeetCode 205. Isomorphic Strings (同构字符串)
    LeetCode 204. Count Primes (质数的个数)
    LeetCode 202. Happy Number (快乐数字)
    LeetCode 170. Two Sum III
    LeetCode 136. Single Number (落单的数)
    LeetCode 697. Degree of an Array (数组的度)
    LeetCode 695. Max Area of Island (岛的最大区域)
    Spark中的键值对操作
    各种排序算法总结
  • 原文地址:https://www.cnblogs.com/findumars/p/8001424.html
Copyright © 2011-2022 走看看