日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

%dn在c语言中是什么意思,请问C语言中 char far 是什么意思?

發(fā)布時(shí)間:2024/7/19 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 %dn在c语言中是什么意思,请问C语言中 char far 是什么意思? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

near指針和far指針?

在DOS下(實(shí)模式)地址是分段的,每一段的長(zhǎng)度為64K字節(jié),剛好是16位(二進(jìn)制的十六位)。

near指針的長(zhǎng)度是16位的,所以可指向的地址范圍是64K字節(jié),通常說near指針的尋址范圍是64K。

far指針的長(zhǎng)度是32位,含有一個(gè)16位的基地址和16位的偏移量,將基地址乘以16后再與偏移量相加,(所以實(shí)際上far指針是20位的長(zhǎng)度。)即可得到far指針的1M字節(jié)的偏移量。所以far指針的尋址范圍是1M字節(jié),超過了一個(gè)段64K的容量。例如一個(gè)far指針的段地址為0x7000,偏移量為0x1244,則該指針指向地址0x71224.如果一個(gè)far指針的段地址是0x7122,偏移量為0x0004,則該指針也指向地址0x71224。

如果沒有指定一個(gè)指針是near或far,那么默認(rèn)是near。所以far指針要顯式指定。far指針工作起來要慢一些,因?yàn)槊看卧L問一個(gè)far指針時(shí),都要將數(shù)據(jù)段或程序段的數(shù)據(jù)交換出來。另外,far指針的運(yùn)算也比較反常,例如上面講到的far指針指向同一個(gè)地址,但是比較的結(jié)果卻不相同。

什么時(shí)候使用far指針?

當(dāng)使用小代碼或小數(shù)據(jù)存儲(chǔ)模式時(shí),不能編譯一個(gè)有很多代碼或數(shù)據(jù)的程序。因?yàn)樵?4K的一個(gè)段中,不能放下所有的代碼與數(shù)據(jù)。為了解決這個(gè)問題,需要指定以far函數(shù)或far指針來使用這部分的空間(64K以外的空間)。許多庫函數(shù)就是顯式地指定為far函數(shù)的形式。far指針通常和farmalloc()這樣的內(nèi)存分配函數(shù)一起使用

總結(jié)

以上是生活随笔為你收集整理的%dn在c语言中是什么意思,请问C语言中 char far 是什么意思?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。