1. C語言的編譯步驟
1.1 預(yù)處理
- 帶#的語句就是預(yù)處理指令, 預(yù)處理指令在預(yù)處理的時候處理了
- 頭文件展開: #include <stdio.h> 包含stdio.h (預(yù)處理將stdio.h文件拷貝至預(yù)處理文件中)
- 宏替換: #define 代表是聲明一個宏, 在預(yù)處理時會將宏文件對應(yīng)的值替換
- 預(yù)處理不會檢查語法錯誤
- 條件不成立 #if 0 -> #endif , 條件成立 #if 1 -> #endif
#include <stdio.h>
#define PI 3.14
int main(){
#if 0
printf("hello", PI);
return 0;
#endif
}
1.2 編譯
將預(yù)處理文件變成匯編文件
- 檢查語法錯誤
1.3 匯編
將匯編文件變成二進制文件.o
1.4 鏈接
設(shè)置運行環(huán)境, 堆棧等, 鏈接其他庫
- 鏈接命令最后變成.exe文件
可以成功運行