亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編程中托管或非托管代碼是什么?

編程中托管或非托管代碼是什么?

C#
開滿天機 2019-12-09 12:08:50
我在C#代碼中使用了特定的命令,效果很好。但是,據說在“非托管”代碼中行為不當。什么是托管或非托管代碼?
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

當您想到非托管時,請考慮機器專用的機器級代碼。類似于x86匯編語言。非托管(本機)代碼經過編譯和鏈接,可直接在其設計用于的處理器上運行,此刻不包括所有操作系統內容。它不是便攜式的,但速度很快。非常簡單,精簡的代碼。

托管代碼包括從Java到舊的Interpretive BASIC的所有內容,或在.NET下運行的所有內容。通常將托管代碼編譯為中間級別的P代碼或字節代碼指令集。盡管它們看起來類似于匯編語言,但它們不是特定于機器的指令。托管代碼將程序與運行它的計算機隔離開來,并創建一個安全邊界,在該邊界中間接分配所有內存,通常來說,您無法直接訪問機器資源,例如端口,內存地址空間,堆棧等。這個想法是在更安全的環境中運行。

要從托管變量轉換為非托管變量,您必須先到達實際對象本身。它可能被包裹或裝在其他包裝中。在32位計算機上,非托管變量(例如“ int”)僅占用4個字節。沒有開銷或其他包裝。從托管代碼變為非托管代碼,然后再返回的過程稱為“ 封送處理 ”。它允許您的程序越過邊界。



查看完整回答
反對 回復 2019-12-11
  • 3 回答
  • 0 關注
  • 311 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號