2007年4月17日

             我們知道從源文件到可執(zhí)行文件,C分為兩步:編譯和鏈接。


             1>編譯

             編譯就是把源代碼轉(zhuǎn)換為中間代碼。當然了,存放中間代碼的文件就叫中間文件。
             那么中間文件,或者說中間代碼是由什么構(gòu)成呢?其形式有多種。但是我只知道一種:就是由源代碼轉(zhuǎn)換的機器碼組成,這種中間文件叫做目標文件。
             雖然它和可執(zhí)行文件一樣都是有機器碼組成,但是它并不能直接運行。因為它比可執(zhí)行文件少了兩個東東:啟動代碼(start-up code)和庫函數(shù)。


             2>鏈接

             
          鏈接就是把目標代碼、相應操作系統(tǒng)的啟動代碼、庫函數(shù)三者結(jié)合起來行成可執(zhí)行文件。
                (啟動代碼):此代碼相當于你的程序和操作系統(tǒng)之間的接口。不同操作系統(tǒng)處理程序的方式不同,所以它們的啟動代碼也不同。
                (庫)      幾乎每個c函數(shù)都會引用到庫函數(shù),目標文件中只有相應函數(shù)的引用聲明,并沒有相應代碼。


             這種分兩步走的做法便于程序的模塊化。你可以分別編譯各個模塊,然后把編譯過的模塊鏈接起來。這樣如果改變其中一個模塊的話,只需要重新編譯這個模塊,而不需要編譯其他模塊兒。
          posted @ 2007-04-17 17:22 Stone 閱讀(506) | 評論 (0)編輯 收藏
           
          主站蜘蛛池模板: 十堰市| 清远市| 巴彦淖尔市| 竹溪县| 安阳县| 临沭县| 吴桥县| 麻江县| 平乡县| 丰县| 任丘市| 广丰县| 漳州市| 武陟县| 衡阳市| 永仁县| 织金县| 永登县| 隆昌县| 仁怀市| 桃江县| 洪江市| 扬州市| 平安县| 淮阳县| 大连市| 镇远县| 洞头县| 师宗县| 东丰县| 聂拉木县| 黑龙江省| 泽库县| 克什克腾旗| 余干县| 黔江区| 治多县| 松桃| 绥化市| 靖远县| 湄潭县|