解释c中近,远和巨大指针之间的区别?

时间:2012-01-04 12:47:13

标签: c pointers

  

可能重复:
  difference between far pointer and near pointer in C

我在GOOGLE中搜索了这三个指针之间的区别。但我发现了两个指针之间的区别。

你能详细说明吗?

2 个答案:

答案 0 :(得分:19)

差异仅与16 bit intel architectures相关。

就虚拟地址而言,它有两个组件 - 选择器和偏移量。

选择器是基本地址表的索引,偏移被添加到该基地址。

附近指针没有选择器 - 他们有一个implied selector。他们可以从虚拟地址空间访问64k。

指针有explicit selector。但是当你对selector isn't modified进行指针算术时。

巨大的指针有一个explicit selector。当你通过the selector can change对它们进行指针算术时。

请参阅此链接以获取更多信息:

http://www.codeproject.com/Answers/103115/near-vs-far-vs-huge-pointers/?cmt=11086#answer1

答案 1 :(得分:4)

近,远和巨大的指针不是标准C的一部分;它们是几个供应商为处理分段存储器架构而进行的扩展。 Karthik的回答提供了更多细节。