far与near的用法

  far 是C/C++语言在16位系统中用以标明指针是个远指针的修饰符,在32位系统已经废除不用了。远指针是说指针所指向的地址已经超出了64K(2的十六次方),所以需要使用DS加偏移量的方法来寻址,而不能直接寻址。其反义的修饰符是near,举例:
      int far *fptr;      
      fptr=(int far*)0xb0000000; 
16位PC机的存储器地址是由段地址和偏移地址组合而成,每一段不能超过64k字节地址,因而同一个段内的地址存取,用偏移地址就可以实现,因段地址寄存器所存的段地址是不变的。当用指针时,只16位就够了,这一类就是near指针。当要在另一个段内取数据,就要跨越段,即要指明存取段的段地址和偏移地址,这时段地址寄存器所存段地址要改变,在使用指针指向另一个段内地址时,就要用32位表示,就是far指针了。由此可见,如果你想写在Win16上也能运行的程序,才会涉及到newr、far指针的概念。在Win32上,指针已无near、far的区分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值