1. 程式人生 > >後臺開發閱讀筆記——編譯與連結

後臺開發閱讀筆記——編譯與連結

編譯與連結的過程可以分解為4個步驟,分別是預處理,編譯,彙編和連結。
1、預處理過程主要處理那些原始碼檔案只能夠以“#”開始的預編譯指令。比如#include,#define等。
1)、將所有#define刪除,並且展開所有巨集定義。#undef則取消對某個巨集的定義,使以後該串的出現不再被替換。
2)、處理所有條件預編譯指令,比如#if,#ifdef,#elif,#else,#endif。
3)、處理#include預編譯指令,將被包含的檔案插入到該預編譯指令的位置。注意這個過程是遞迴的,就是被包含的檔案可能還包含其他檔案。
4)、過濾所有的註釋“//”和“/**/”。
5)、新增行號和檔名標識。
6)、保留所有的#pragma編譯器指令,因為編譯器需要使用它們。

2、編譯過程分為:詞法分析,語法分析,語義分析,原始碼優化,程式碼生成和目的碼優化。

3、連結就是把編譯後的模組組裝起來。把各個模組間的相互引用的部分都處理好,使得各個模組能夠正確的銜接。