1. C 程序開發快速入門
- 需求說明
要求開發一個hello.c
程序,可以輸出 “hello,world” - 開發步驟
-
創 建 一 個 空 項 目 (VC++2010 是 以 項 目 的 方 式 管 理 源 代 碼 ) , 如 下 圖,項 目 存 放 路 徑 :
F:\C study\C\01_hello
-
編寫到文件名為
hello.c
文件中。
//引入頭文件
#include <stdio.h>
//main函數,是程序執行的入口
void main(){
//1.printf是一個函數,需要一個頭文件才能使用
//2.printf是在<stdio.h>,需要引入該頭文件
printf("Hello World!");
//讓窗口停留
getchar();
}
- 點擊 開始執行(不調試) 按鈕運行程序 (這個按鈕需要配置)
- 添加完成后就會發現多了一個按鈕,或者也可以按
Ctrl+F5
(開始執行不調試)
- 執行上面的
hell.c
代碼后,發現有個黑色的窗口一閃而過,沒有停留,所以要配置下才能使窗口停留:
//讓窗口停留
getchar();
2. C 程序運行機制流程
C 程序運行機制(過程)簡述
-
編輯:比如編寫我們的
hello.c
文件, 就是 源代碼.
-
編譯:將
hello.c
程序 翻譯成 目標文件(hello.obj
) // 在計算機底層執行
-
鏈接:將目標文件
hello.obj + 庫文件
生成可執行文件(01_hello.exe
) //在計算機底層執行
-
運行:執行
.exe
文件, 得到運行結果
C程序的運行機制流程
- 編譯程序
cl.exe
和鏈接程序link.exe
在我們安裝vs 2010的bin
目錄
- C 程序執行流程圖解分析
3. 編譯、鏈接和運行詳解
- 什么是編譯?
- 有了 C 源文件,通過編譯器將其編譯成
obj
文件(目標文件)。 - 如果程序沒有錯誤,沒有任何提示,但在 Debug 目錄下會出現一個
hello.obj
文件,該文件稱為目標文件。
- 什么是鏈接?
- 有了目標文件(
.obj
文件),通過鏈接程序將其和運行需要的 c 庫文件鏈接成exe
文件(可執行文件)。 - 如果程序沒有錯誤,沒有任何提示,但在 Debug 目錄下會出現一個
項目名.exe 文件
,該文件稱為可執行文件。 - 為什么需要鏈接庫文件呢? 因為我們的 C 程序中會使用 C 程序庫的內容,比如
<stdio.h> <stdlib.h>
中的函數printf() system()
等等, 這些函數不是程序員自己寫的,而是 C 程序庫中提供的,因此需要鏈接。 - 你會發現鏈接后,生成的
.exe
文件,比obj
文件大了很多。
- 源文件
hello.c
只有 1KB
- 編譯后的
hello.obj
有 4KB
- 運行的
hello.exe
有 27KB
- 什么是運行?
- 有了可執行的
exe
文件, 也稱為可執行程序 (二進制文件) - 在控制台下可以直接運行
exe
文件
4. C 程序開發注意事項
- 對修改后的
hello.c
源文件需要重新編譯鏈接,生成新的exe
文件后,再執行,才能生效。
5. 如果想只生成目標 exe 文件,不想執行結果
-
如:
hello.c
程序代碼修改后只想生成.exe
文件,不要執行結果
-
可以這樣做:打開 VC++ 2010 ,生成–> 重新生成解決方案(或
Ctrl+Alt+F7
)
-
也可以直接生成解決方案(
F7
)
-
代碼如下:
-
可以看到生成后的
exe
文件就不會彈出來執行了 -
在文件夾中雙擊打開
exe
文件