C C 中near和far的區別

2021-06-23 07:12:13 字數 955 閱讀 4756

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的區別

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

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

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