C C 中near和far關鍵字的區別

2021-07-28 04:04:52 字數 750 閱讀 9371

c/c++中near和far的區別

關鍵字near和far受目標計算機體系結構的影響。目前程式設計中使用不多。

near關鍵字建立乙個指向可定址記憶體低端部分的目標指標。這些指標占用記憶體的單一位元組,並且他們能夠指向的記憶體單元被限制到256個位置,通常是在0x0000~0x00ff範圍中。

int near * ptr;

far關鍵字建立乙個能夠指向記憶體中任何資料的指標:

char far * ptr;

near   (近)指標:16位段內偏移位址     

far(遠)指標:16位段位址+16位段內偏移位址     

huge(巨)指標:32位規格化的具有唯一性的記憶體位址   

c語言的存貯屬性由六種編譯模式決定(參見tc整合環境選單中的option->compiler->model選項),預設的編譯模式為small,   在該編譯模式下,指標的預設屬性為near。

補充:near指標是16位指標,依賴乙個段位址暫存器,指標變數就是位移量,利用 段位址暫存器+指標 來定址,所以有64k之限制。

far 指標是32位指標,不但有16位的位移量,還有16位的段位址,但此指標有個缺陷,增量時只加到位移部分,一旦16位的位移量超過了ffff就會回到這個段位址的初始。

所以,又引入了huge指標,huge指標與far一樣,其區別僅在於使用了標準化的方法來表示,這樣所有的位址都有乙個唯一的表示方法,從而避免了far指標的問題。

空指標規定了一種指標狀態,如果沒有這個空指標,就如數字沒有了0。     

C C 中near和far的區別

c 中far,near區別 雪后de陽光 c c 中near和far的區別 關鍵字near 和far 受目標計算機體系結構的影響。目前程式設計中使用不多。near 關鍵字建立乙個指向可定址記憶體低端部分的目標指標。這些指標占用記憶體的單一位元組,並且他們能夠指向的記憶體單元被限制到 256個位置,通...

C C 中near和far的區別

c c 中near和far的區別 關鍵字near 和far 受目標計算機體系結構的影響。目前程式設計中使用不多。near 關鍵字建立乙個指向可定址記憶體低端部分的目標指標。這些指標占用記憶體的單一位元組,並且他們能夠指向的記憶體單元被限制到 256個位置,通常是在0x0000 0x00ff範圍中。i...

C C 中near和far的區別

關鍵字near和far受目標計算機體系結構的影響。目前程式設計中使用不多。near關鍵字建立乙個指向可定址記憶體低端部分的目標指標。這些指標占用記憶體的單一位元組,並且他們能夠指向的記憶體單元被限制到256個位置,通常是在 0x0000 0x00ff範圍中。int near ptr far關鍵字建立...