文章目錄
1. 什么是編譯
- 有了 C 源文件,通過編譯器將其編譯成
obj
文件(目標文件)。 - 如果程序沒有錯誤,沒有任何提示,但在
Debug
目錄下會出現一個Hello.obj
文件,該文件稱為目標文件
2. 什么是鏈接
- 有了目標文件(
.obj 文件
),通過鏈接程序將其和運行需要的c 庫文件
鏈接 成exe 文件
(可執行文件)。 - 如果程序沒有錯誤,沒有任何提示,但在
Debug
目錄下會出現一個項目名.exe
文件,該文件稱為可執行文件。 - 為什么需要鏈接庫文件呢? 因為我們的 C 程序中會使用 C 程序庫的內容,比如
<stdio.h> <stdlib.h>
中的函數printf() system()
等等, 這些函數不是程序員自己寫的,而是 C 程序庫中提供的,因此需要鏈接 - 你會發現鏈接后,生成的
.exe
文件,比obj
文件大了很多
3. 什么是運行
- 有了可執行的 exe 文件, 也稱為可執行程序 (二進制文件)
- 在控制台下可以直接運行 exe 文件
4. C 程序開發注意事項1
- 對修改后的
hello.c
源文件需要重新編譯鏈接,生成新的exe 文件
后,再執行,才能生效。
5. 如果想只生成目標 exe 文件,不想執行結果
- 如:
hello.c
程序代碼修改后只想生成.exe 文件
,不要執行結果
- 可以這樣做:打開 VC++ 2010 ,調試–> 生成解決方案
- 這樣就不會彈出執行
.exe 文件
- 而當打開
.exe 文件
就是生成后的結果
6. 編譯、鏈接和運行的流程
hello.c
的源文件只有1KB
-
編譯后生成的 目標文件 只有
4KB
-
當鏈接生成
exe 文件
變成了 27KB,說明在鏈接的過程中把一些庫函數資源一起鏈接到 exe 文件中,所以 exe 文件變大了
7. C 程序開發注意事項2
- C 程序的主體結構說明
#include ...
void main() { // {} 包括內容, 稱為函數體
語句 1;
語句 2;
}
- C 程序源文件以“
c
”為擴展名。 - C 程序的執行入口是 main()函數
- C 語言嚴格區分大小寫。
- C 程序由一條條語句構成,每個語句以“
;
”結束 - 大括號都是成對出現的,缺一不可