日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

【CLR的执行模型:将源代码编译成托管模块】

發(fā)布時(shí)間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CLR的执行模型:将源代码编译成托管模块】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CLR:由多種不同編程語(yǔ)言使用的運(yùn)行庫(kù)

托管模塊:中間語(yǔ)言和元數(shù)據(jù)

非托管語(yǔ)言:C/C++,不過此為特殊,可以寫成托管代碼

托管語(yǔ)言:C#

?


托管模塊

1,PE32/PE32+頭:PE32運(yùn)行在win32位系統(tǒng)中,win32+運(yùn)行在64位系統(tǒng)

2,CLR頭,包括CLR版本,方法入口main,元數(shù)據(jù)標(biāo)記,元數(shù)據(jù),資源,名稱

3,IL代碼:CLR將IL編譯成本地cpu指令


圖:

?


總結(jié):在net的CLR(公共語(yǔ)言運(yùn)行庫(kù))中包括托管語(yǔ)言(C#)和非托管語(yǔ)言(例如C++),兩者到底什么區(qū)別.下面以數(shù)組為例

C#初始化數(shù)組不必考慮內(nèi)存分配問題,如果你用反匯編工具可以看到IL代碼,會(huì)自動(dòng)分配內(nèi)存大小

C++則與此不同,你需要事前分配合適大小再去處理

其次,CLR到底干嘛的?比如異常處理程序,你可以用C/c++/VB/C#/F#等不同語(yǔ)言編程,但是最終都要通過相應(yīng)的編譯器編譯成IL(中間語(yǔ)言),然后調(diào)用底層異常處理程序。其為公用的一類程序倉(cāng)庫(kù)。整個(gè)源代碼編譯成托管模塊的過程是,源代碼(C#)在完成后,運(yùn)行時(shí)經(jīng)過相應(yīng)的(C#)編譯器編譯成中間語(yǔ)言,生成相應(yīng)托管模塊(中間語(yǔ)言和元數(shù)據(jù))的 整個(gè)過程

轉(zhuǎn)載于:https://www.cnblogs.com/baiboy/archive/2013/03/04/2942597.html

總結(jié)

以上是生活随笔為你收集整理的【CLR的执行模型:将源代码编译成托管模块】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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