extern far void vectors();中far是什么意思

       在16位编译器(Turbo C)中常见,这跟内存寻址有关。

       PC机的内存地址是由段地址和偏移地址组成(汇编中常见的词),每个段不能超过64K地址。因此在段内寻址,只要用到偏移地址就够了,因段地址寄存器所存的段地址是不变的,用指针时,只16位够了(仅表示偏移地址)这类地址称为近指针(near型);当要跨段时,即要指明所要存取的段地地和偏移地址时,这时段寄存器中所存段地址要改变,因此要用指针指向另一个段内地址时,此时要用32位表示(段地址:偏移地址),称远指针,是far型的。

       简单的说,比如代码较近,我们就可一用短指针访问即near调用,但是如果表示代码的地址很长,就得用长指针或者间接访问,后者就是far调用。

       在32位系统中,可以不用理它。

你可能感兴趣的:(c,汇编,编译器)