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


             1>編譯

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


             2>鏈接

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


             這種分兩步走的做法便于程序的模塊化。你可以分別編譯各個模塊,然后把編譯過的模塊鏈接起來。這樣如果改變其中一個模塊的話,只需要重新編譯這個模塊,而不需要編譯其他模塊兒。
          posted on 2007-04-17 17:22 Stone 閱讀(504) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 枣强县| 大丰市| 弋阳县| 新干县| 门源| 寻甸| 安远县| 焉耆| 黔东| 梁山县| 松潘县| 弥勒县| 博乐市| 大宁县| 溧水县| 永安市| 依安县| 临猗县| 佛教| 吉林省| 青田县| 沈阳市| 青河县| 南召县| 诸暨市| 广饶县| 阜康市| 古丈县| 河津市| 边坝县| 西乌珠穆沁旗| 虞城县| 永靖县| 乌海市| 东乡县| 涪陵区| 洛浦县| 肃宁县| 灯塔市| 溧水县| 沈阳市|