成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

匯編語言是一種什么語言 請問keil中編譯后的Program Size:data xdata code上限是多少?

請問keil中編譯后的Program Size:data xdata code上限是多少?Keil C51。Keil MDK應(yīng)該可以達(dá)到4GB。C51的實(shí)際值與您的硬件和軟件有關(guān)。代碼只與硬件有關(guān),不

請問keil中編譯后的Program Size:data xdata code上限是多少?

Keil C51。Keil MDK應(yīng)該可以達(dá)到4GB。C51的實(shí)際值與您的硬件和軟件有關(guān)。代碼只與硬件有關(guān),不能超過Rom的總?cè)萘?。通常,Rom的最大容量是64KB。如果您在項(xiàng)目中選擇了一個芯片,如果超過了它,系統(tǒng)會提示您。Keil的代碼銀行功能可以超過64KB,但最大值尚未驗(yàn)證。數(shù)據(jù)與最大嵌套級別相關(guān)。計(jì)算時,應(yīng)注意中斷嵌套。如果排除嵌套,則需要保留的堆棧就是最大數(shù)據(jù)量。如果芯片ram只有128B,則需要使用128從堆棧中減去保留字節(jié)數(shù)。如果超過256b,通常使用256進(jìn)行減法。如果有一個可重入函數(shù)并且它是在小內(nèi)存模式下編譯的,則有必要考慮可重入函數(shù)的數(shù)量??芍厝牒瘮?shù)在單片機(jī)中應(yīng)盡量避免使用。每次重入時,函數(shù)中變量的字節(jié)數(shù)會占用更多的內(nèi)存,這更像PC函數(shù)。如果您使用malloc和其他函數(shù),您可以自己判斷。擴(kuò)展數(shù)據(jù)基本上可以用完。你想用多少就用多少。如果存在一個小內(nèi)存模式,在該模式下不使用重入功能,則需要保留重入所需的內(nèi)存。

請問一下,遞歸函數(shù)是否有一定限制?例如棧的大小和棧的數(shù)量?

必須有限制。

遞歸消耗大量堆棧資源。如果遞歸太多,它將溢出。確切地說,函數(shù)調(diào)用本身將消耗堆棧資源,但在函數(shù)調(diào)用結(jié)束時,將返回函數(shù)使用的堆??臻g,因此這不是一個大問題。很少看到程序堆滿了。但是遞歸是個例外。它是一個在循環(huán)中調(diào)用自身的函數(shù)。在遞歸結(jié)束之前,堆棧使用量將繼續(xù)增長。程序是否會溢出取決于遞歸函數(shù)能否在堆棧滿之前返回。目前還不清楚windows中的程序堆棧有多大。但是強(qiáng)烈建議不要使用遞歸,因?yàn)檫@有點(diǎn)貴。遞歸是一種編程概念,但實(shí)際使用較少,畢竟大家都知道,如果次數(shù)較多,這個東西就會溢出。只需更改代碼并將其更改為迭代。

遞歸出現(xiàn)堆棧溢出異常?

遞歸最常見的問題是堆棧溢出。一般來說,操作系統(tǒng)分配給進(jìn)程的堆棧內(nèi)存是2m(就好像是2m)。根據(jù)正常的程序處理,局部變量進(jìn)出棧都不太可能溢出,但遞歸會導(dǎo)致棧溢出,從而可能導(dǎo)致棧溢出。在這里定義兩個int變量,即8字節(jié),然后用保存的函數(shù)地址等信息,*100000次遞歸,還有一些其他局部變量放入堆棧,它們可能已經(jīng)超過了最大堆??臻g,所以它們會溢出。