C語言從代碼到可執行程序的過程

C語言從代碼到可執行程序的過程

一個C語言程序,從代碼到可執行程序的過程需要四個步驟:預處理,編譯 ,彙編,鏈接。

1.預處理

預處理負責對源代碼進行文本處理。主要處理代碼中以字符#開頭的命令。
有以下幾個處理的地方:

(一)解析所有的條件預處理指令。
(二)解析定義的宏,將代碼中使用的宏進行替換。
(三)刪除註釋
(四)解析 #include,將引入的頭文件拷貝到當前命令位置
(五)添加行號號和文件標識(我們在vs上編譯代碼後報的錯誤中的行號就是這時添加的)。
(六)保留#program,留給編譯過程。
完成這些後,以從c爲後綴的文本文件生成了以.i爲後綴的文本文件。

2. 編譯

編譯期間也要經過多個步驟,由.i的文本文件生成.s的文本文件。此文件爲以彙編語句完成的代碼
(一)詞法分析。
(二)語法分析
(三)語義分析
(四)源代碼優化
(五)目標代碼生成
(六)目標代碼優化

3.彙編

經過彙編階段把彙編語句轉換爲機器指令,由.s的文本文件生成.o的二進制文件。

4.鏈接

鏈接器將所有二進制的目標文件和系統組件組合成一個可執行文件(.exe)。 (需要注意的是,我們在編譯器是針對源文件進行編譯的並且每個源文件都只會編譯一次,所以彙編結束後每個源文件都會生成一個.o文件,這裏的目標文件就是這些.o文件。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章