FAR 是16位系統時候的概念了,表明遠指針的意思。指針
近指針是16位的指針,它只表示段內的偏移地址,於是只能對64k字節數據段內地址進行存取。內存
如 char near *p;編譯器
p=(char near *)0xffff;編譯
遠指針是32位指針,它表示段地址:偏移地址,如定義遠程指針p指向B500段的2號地址,即B500:0002,則可寫做:變量
char far *p;數據
p=(char far *)0xB5000002;遠程
所以,遠指針能夠進行跨段尋址,能夠訪問整個內存的地址。系統
16位系統有遠近指針之分的環境中,得告訴編譯器指針變量h_name強制使用遠指針方式。由於16位系統尋址範圍只有2^16=64K,因此用FAR指針,再加上16位,高16位存放的是變量的段地址,低16位存放變量的段內偏移。