本文主要講述了一個(gè)C程序從源代碼到目標(biāo)文件所經(jīng)過的步驟,介紹了編譯系統(tǒng),預(yù)處理、編譯、匯編和鏈接的相關(guān)知識(shí)。

一、編譯系統(tǒng) 

  一個(gè)C程序的生命周期從高級(jí)C語言程序開始。想要在系統(tǒng)上執(zhí)行.c程序,每條C語句都必須翻譯為低級(jí)的機(jī)器語言指令,將這些指令按照可執(zhí)行目標(biāo)程序的格式打包,以二進(jìn)制磁盤文件的形式存放,這就是可以由系統(tǒng)執(zhí)行的可執(zhí)行目標(biāo)文件。這些工作包含如下圖所示的四個(gè)過程,由編譯系統(tǒng)完成。

  一般而言,編譯系統(tǒng)包括預(yù)處理器、編譯器、匯編器和鏈接器。

                    seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

   注意一下上圖中各個(gè)階段輸出的文件格式是文本文件還是二進(jìn)制文件。

1.預(yù)處理階段

  源代碼.c文件和相關(guān)的頭文件如stdio.h等被預(yù)處理器編譯為一個(gè).i文件。

預(yù)處理過程主要處理那些源代碼文件中的以#開頭的預(yù)處理指令。主要規(guī)則如下:

  a.刪除所有的#

網(wǎng)友評(píng)論