关于长指针

老A四十二号 老A四十二号 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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的空间中可以任意指向. 所以没有特别意义

...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
老A四十二号
C语言 70,039 成员 243,237 内容