关于长指针

老A四十二号 2008-04-03 09:13:50
FAR HUGE 指针是针对DOS平台的,为了跨越段的限制。在DOS下的指针
默认是 near指针长度是 2字节 默认的段是数据段不能改变, 而如果我们要取得一个视频ROM中的数据时就需要 far指针 far指针长度是 4字节 2个字节指示段地址 2个字节指示偏移量
或者huge指针 huge指针和far指针的最大不同是far指针在参加++运算时不会改变段地址,
如: p = 0x0080:0xffff; ++p的结果是 0x0080:0x0000
而huge指针的话则是 0x0081:0x0000
还有就是比较运算时 huge指针会先做规格化再比较,而far指针不会,
这样有可能导致两个相同地址的指针由于地址覆盖的原因导致 比较时不同.
而huge指针由于先规格化所以不会.

在WINDOWS下由于内存模式是平坦的. 指针都是4字节的,在4G的空间中可以任意指向. 所以没有特别意义

...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
确实,在32位下没啥意义
andywiliang 2008-04-03
  • 打赏
  • 举报
回复
这个太难了,帮你顶个高手来



-------------------------------------------------------------------------------------------

VB编程交流群:55784519

C C++ C# JAVA编程交流群:11713348

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧