程式的編譯過程,乙個C程式在計算機上是如何執行的?

2021-10-14 07:54:22 字數 746 閱讀 7474

1.編譯過程的任務

將高階語言**解釋為機器指令

這個過程由編譯器完成
2.編譯過程的四個階段

(1)預處理

展開標頭檔案,巨集替換,刪除注釋

(2)編譯

檢查語義語法錯誤,若沒有錯誤將c語言解釋為組合語言

(3)彙編

將彙編**解釋為二進位制的cpu指令

(4)鏈結

將所有的二進位制指令**打包到一起(不僅是打包我們自己的**,還要打包庫函式指令**),進而組織成為可執行程式

3.linux下程式的編譯過程

gcc(c語言編譯器)對應的linux指令

-e:只進行預處理

-s:只進行編譯處理

-c:只進行彙編處理

-o:指定輸出檔名稱

在linux下執行一段c**,可以將這四個步驟依次進行,

各階段的指令如下:

預處理:gcc -e test.c -o test.i

編譯:gcc -s test.i -o test.s

彙編:gcc -c test.s -o test.o

執行:./test.exe

乙個C 程式的執行過程

可能很多人都知道我們把程式打包成dll就丟出去了,但是裡面的具體的執行過程是怎麼樣的呢。程式集是由元資料和il組成的。il是和cpu無關的語言,是微軟的幾個專家請教了外面的編譯器的作則,開發出來的。il比大多數機器語言都要高階一點。il能夠訪問和操作物件型別,並提高了指令來初始化物件,呼叫物件上的虛...

乙個C程式的編譯過程(Linux環境下Gcc)

一 以下是c程式一般的編譯過程 從圖中看到 將編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯階段 和鏈結這兩個階段。其中,1.編譯階段先通過 編譯器 把乙個.c cpp 源 編譯成 s的彙編 再經過 彙編器 把這 個.s的彙編 彙編成 o 的 目標 2.聯結器 通過連線其他...

C程式編譯過程

題記 前幾天去華為面試實習生,面試官問了個問題,讓我說出乙個程式的詳細編譯過程,當時磕磕絆絆說了一堆東西,事後自己都不知道當時說了什麼,慚愧。c語言編譯過程 編譯,編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系...