1. 程式人生 > >程序是怎樣跑起來的 第八章

程序是怎樣跑起來的 第八章

臨時 使用 代碼 連接器 本地文件 結合 函數調用 生成可執行文件 領域

源代碼編寫完成後,就可以編譯生成可執行文件了,負責實現該功能的是編譯器。什麽是編譯器?就是能夠把高級編程語言編寫的源代碼轉換成本地代碼的程序。每個編程語言都需要其專用的編譯器。編譯器首先讀入代碼的內容,然後再把源代碼轉換成本地代碼。根據cpu類型的不同,本地代碼的類型也不同,所以編譯器還和cpu的種類相關。編譯器轉換源代碼後,就會生成本地文件,但是本地文件無法直接運行的,編譯之後還需要進行鏈接處理。把多個目標文件結合,生成一個exe文件的處理就是鏈接,運行鏈接的程序稱為鏈接器。把多個目標文件集成保存到一個文件中,這樣的文件叫庫文件。連接器指定庫文件後,就會把需要的目標文件抽取出來,並和其他目標文件結合生成exe文件。exe文件的內容分為再配置信息,變量組,函數組。

當程序加載到內存後,會產生棧和堆。棧是用來存儲函數內部臨時使用的變量和函數調用時用的參數的內存區域,堆是用來存儲程序運行時的任意數據及對象的內存領域。

程序是怎樣跑起來的 第八章