C語言編譯的四個階段是預處理、編譯、匯編和鏈接。其具體過程如下:
預處理階段:處理源代碼中的預處理指令,如#include和#define等,生成經過預處理的源代碼文件。預處理的結果通常保存在一個臨時文件中。
編譯階段:將預處理后的源代碼翻譯成匯編代碼,包括將源代碼翻譯成中間代碼、進行優化等操作。編譯器將生成的匯編代碼保存在一個文件中。
匯編階段:將匯編代碼翻譯成機器語言指令,生成目標代碼文件。匯編器將把生成的目標代碼保存在一個目標文件中。
鏈接階段:將各個目標文件和庫文件鏈接在一起,生成可執行文件。鏈接器將把生成的可執行文件保存在一個文件中,這個文件就是可以直接運行的程序。