C語言編譯、鏈接和運行詳解


1. 什么是編譯

  1. 有了 C 源文件,通過編譯器將其編譯成 obj 文件(目標文件)
  2. 如果程序沒有錯誤,沒有任何提示,但在 Debug 目錄下會出現一個 Hello.obj 文件,該文件稱為目標文件

2. 什么是鏈接

  1. 有了目標文件(.obj 文件),通過鏈接程序將其和運行需要的 c 庫文件鏈接 成 exe 文件(可執行文件)。
  2. 如果程序沒有錯誤,沒有任何提示,但在 Debug 目錄下會出現一個項目名.exe 文件,該文件稱為可執行文件。
  3. 為什么需要鏈接庫文件呢? 因為我們的 C 程序中會使用 C 程序庫的內容,比如 <stdio.h> <stdlib.h> 中的函數printf() system()等等, 這些函數不是程序員自己寫的,而是 C 程序庫中提供的,因此需要鏈接
  4. 你會發現鏈接后,生成的.exe 文件,比 obj 文件了很多

3. 什么是運行

  1. 有了可執行的 exe 文件, 也稱為可執行程序 (二進制文件)
  2. 在控制台下可以直接運行 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

  1. C 程序的主體結構說明
	#include ... 
	void main() { // {} 包括內容, 稱為函數體
	語句 1;
	語句 2;
	}
  1. C 程序源文件以“c”為擴展名。
  2. C 程序的執行入口是 main()函數
  3. C 語言嚴格區分大小寫。
  4. C 程序由一條條語句構成,每個語句以“;”結束
  5. 大括號都是成對出現的,缺一不可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM