?

解决方案 »

  1.   

    在win32中应该没有区别吧??
      

  2.   

    区别在于调用者和目标在代码段范筹的不同,在DOS中,相同代码段之间的调用用near,相反用far,在Windows中也应该是这样的(猜想),对dll中函数的调用就用了far。
      

  3.   

    它是原来的16位Windows,如Windows3.2的遗留物。在16位Windows中,内存是分段的(学过8086汇编语言的话,应该很清楚这个概念),所以指针分为两类:FAR指针和NEAR指针。FAR表示指示的是另外一个段或者说全局地址,NEAR表示指示的是本段内部的地址。
    到了Win32中,内存具有32位的线性地址,没有分段的概念了,但是为了照顾Win16程序员的习惯,FAR和NEAR都被保留了下来,但是它们的意思是一样的,都表示指针(其实不使用它们也可以)。
    还有Win32中的LP(Long Pointer)中的L(Long)也是一样的道理。