c 語言經過預處理、編譯、連接最後生成可執行文件。
在 linux 的編譯器 gcc 下面,看看其工作流程。
流程圖:
預處理,將包含的 *.h 文件或者一些預處理語句(#define)處理一下,然後將 *.c 文件生成 *.i 的中間文件。
但是注意了 gcc 不會自動生成這樣一個文件,如果需要,自己加 -E 參數即可。
編譯、匯編階段生成 *.o 目標文件,最後經過連接生成可執行文件。
注意:可執行文件不一定是 exe 文件。
下面還是以一個實例 hello.c,說明這個過程。
源文件很簡單,這裡只是為了說明問題。
在命令行,執行下面命令完成預處理:
gcc -E hello.c -o hello.i
執行之後,你可以打開 hello.i 文件,可以看到很多 extern 以及將 MAX 解釋為 20: