3 回答

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)您想到非托管時(shí),請(qǐng)考慮機(jī)器專(zhuān)用的機(jī)器級(jí)代碼。類(lèi)似于x86匯編語(yǔ)言。非托管(本機(jī))代碼經(jīng)過(guò)編譯和鏈接,可直接在其設(shè)計(jì)用于的處理器上運(yùn)行,此刻不包括所有操作系統(tǒng)內(nèi)容。它不是便攜式的,但速度很快。非常簡(jiǎn)單,精簡(jiǎn)的代碼。
托管代碼包括從Java到舊的Interpretive BASIC的所有內(nèi)容,或在.NET下運(yùn)行的所有內(nèi)容。通常將托管代碼編譯為中間級(jí)別的P代碼或字節(jié)代碼指令集。盡管它們看起來(lái)類(lèi)似于匯編語(yǔ)言,但它們不是特定于機(jī)器的指令。托管代碼將程序與運(yùn)行它的計(jì)算機(jī)隔離開(kāi)來(lái),并創(chuàng)建一個(gè)安全邊界,在該邊界中間接分配所有內(nèi)存,通常來(lái)說(shuō),您無(wú)法直接訪(fǎng)問(wèn)機(jī)器資源,例如端口,內(nèi)存地址空間,堆棧等。這個(gè)想法是在更安全的環(huán)境中運(yùn)行。
要從托管變量轉(zhuǎn)換為非托管變量,您必須先到達(dá)實(shí)際對(duì)象本身。它可能被包裹或裝在其他包裝中。在32位計(jì)算機(jī)上,非托管變量(例如“ int”)僅占用4個(gè)字節(jié)。沒(méi)有開(kāi)銷(xiāo)或其他包裝。從托管代碼變?yōu)榉峭泄艽a,然后再返回的過(guò)程稱(chēng)為“ 封送處理 ”。它允許您的程序越過(guò)邊界。
- 3 回答
- 0 關(guān)注
- 647 瀏覽
添加回答
舉報(bào)