一個C++程序從源代碼到執行文件,有四個過程:
一.預編譯
(1)將所有#define刪除,並且展開所有宏定義
(2)處理所有條件預編譯命令,如#if, #ifndef
(3)處理#include預編譯命令,將被包含的文件插入到該預編譯命令的位置
(4)過濾所有注釋
(5)添加行號和文件名標識
二.編譯
(1)詞法分析,將源代碼字符序列分割成一系列記號
(2)語法分析,對詞法分析的結果進行語法分析,產生語法樹
(3)語義分析,判斷表達式是否有意義
(4)代碼優化
(5)生成目標代碼(匯編)
(6)目標代碼優化
三.匯編
將匯編代碼轉換成機器可以執行的指令
四.鏈接
將不同的源文件產生的目標文件進行鏈接,從而形成一個可執行的程序