二、預處理
cludeecludee指令用于定義宏,ifdef指令用于判斷是否已經定義了某個宏。
預處理器將預處理指令替換為對應的內容,生成一個新的源文件。預處理后的源文件中不包含預處理指令,但包含了頭文件的內容和宏的定義。
編譯是將預處理后的源代碼轉化為匯編代碼的過程。編譯器將源代碼分析成詞法單元、語法單元和語義單元,然后進行語法分析和語義分析,生成中間代碼。
編譯器將中間代碼轉化為匯編代碼,匯編代碼是一種低級的程序代碼,它包含了機器指令和數據。匯編代碼中的指令是與特定處理器相關的,需要經過匯編器的處理才能轉化為機器指令。
匯編是將匯編代碼轉化為可重定位目標文件的過程。匯編器將匯編代碼轉化為機器指令,并生成可重定位目標文件。
可重定位目標文件包含了機器指令、數據和符號表。符號表記錄了匯編代碼中定義的符號和對應的地址,這些符號可以是變量、函數名等。
可執行文件包含了機器指令、數據、符號表和入口地址。入口地址是可執行文件的入口點,當程序運行時,操作系統會將程序加載到內存中,并從入口地址開始執行。