要理解乙個程式的執行過程,首先要理解什麼是編譯器。我們用c語言寫的程式,計算機只能識別機器語言(二進位制指令),計算機並不能理解。因此,必須將c語言轉換為機器語言。編譯器就是用來實現這一功能的。編譯器將源**檔案按照一定的對應規則映射程計算機能夠識別的二進位制指令。
關於原始檔、目標檔案和可執行檔案
原始檔:儲存源**的檔案(*.c, *.cpp)
目標檔案:編譯器根據原始檔建立的機器語言指令成為目標**,包含目標**的磁碟檔案即目標檔案。
一般為(*.obj)檔案,linux下為(*.o)檔案。
編譯完源**後生成的目標檔案並不能直接執行。一般我們編寫的程式都回引用基本的庫函式,因此在執行程式之前還要把庫函用定義好的目標**替換,這個過程稱為鏈結。就是把自己寫的源**的目標檔案與庫函式的目標檔案組合起來,生成最終的可執行檔案。鏈結由鏈結器完成。
C 程式執行過程
第一部 進入static void main 2.1 執行private system.componentmodel.container components null 作用是container 類是icontainer 介面的預設實現。容器是封裝和跟蹤零個或更多個元件的物件。在此上下文中,包容是指...
C程式編譯執行過程
c語言從源 到可執行檔案的過程 1 編譯預處理 讀取c源 對其中的偽指令 以 開頭的指令 和特殊符號進行處理 偽指令主要包括以下四個方面 1.1 巨集定義指令 define 定義巨集 undef 取消巨集的定義 預定義巨集 標準c中定義了一些物件巨集,這些巨集的名稱以 兩個下劃線 開頭和結尾,並且都...
C程式編譯執行過程
認識c編譯執行過程,是c學習的開端。簡單說c語言從編碼編譯到執行要經歷一下過程 c源 編譯 形成目標 目標 是在目標機器上執行的 連線 將目標 與c函式庫相連線,並將源程式所用的庫 與目標 合併,並形成最終可執行的二進位制機器 程式 執行 在特定的機器環境下執行c程式。如果用乙個圖 來表示 以上過程...