far即为远地址,16位模式下(如80x86系列)内存是分段寻址的; (一个段就是 2^16,即64k)
指定void far fun1();的话,是说函数fun1的入口点在其它段中,调用时将用到段地址;
如果指定为near的话,入口点将在本段之内,调用时值使用段内的偏移地址。
32位中采用线性的平坦寻址方式,这一概念已被抛弃了,内存中地址统一为32位宽,大体
说来就是这样,细节参见相关资料
指定void far fun1();的话,是说函数fun1的入口点在其它段中,调用时将用到段地址;
如果指定为near的话,入口点将在本段之内,调用时值使用段内的偏移地址。
32位中采用线性的平坦寻址方式,这一概念已被抛弃了,内存中地址统一为32位宽,大体
说来就是这样,细节参见相关资料
本文介绍了在16位模式(如80x86系列)和32位模式下的函数调用区别。16位模式采用分段寻址,通过指定far或near来确定函数调用的段内还是跨段。而在32位模式中,采用线性平坦寻址,这一概念被废弃。
1242

被折叠的 条评论
为什么被折叠?



