C 語言 編譯器

2021-10-22 20:42:34 字數 901 閱讀 6858

c 語言是高階程式語言,人們在使用 c 語言工作的時候不必用數字碼表示指令,大大簡化了對於計算機底層暫存器的操作,人們可以把工作的重點放在**設計和具體功能的實現,編寫出更易讀易懂的**。可是計算機的工作和人類正好相反, c 語言編寫的**對於計算機而言就好比是天書且沒有意義可言,因為計算機是識別機器語言的,比如 0,1 這樣的數字。

因此,如果讓 c 語言編寫的**可以順利的執行,需要有乙個工具可以把人類可以讀懂的高階程式語言翻譯成計算機可以識別的高階語言,這個工具就是編譯器。

編譯器是把源**轉化為可執行**的程式。可執行**是用計算機的機器語言表示的**。典型的 c 實現通過編譯鏈結這兩個步驟來完成的。

在常用的 ide 中都內建了用於編寫 c 語言的編譯器,使使用者不離開 ide 就可以快速的開發自己想要的 c 程式。

編譯用來將程式的源**轉化成目標**,可是光有目標**並不能執行程式,原因有以下兩個方面。

其一,因為在每個開發程式中,我們都不可避免會呼叫一些提供的標準庫函式,而目標**是沒有將這些庫**載入進來的;

其二,哪怕已經載入進來了庫函式,但是因為每個人所使用的計算機系統並不相同,比如有用 windows 的,有用 linux 的,也有用 mac 的等等,因此我們還必須呼叫啟動**

這是就出現了鏈結器的概念,鏈結器的作用就是將目標**、庫**、啟動**結合以來合成乙個檔案,這個檔案就是可執行檔案。

有些 ide 在鏈結按鈕中會自動的呼叫鏈結器,而有些 ide 則是編譯和鏈結分開進行。

圖1 編譯器和鏈結器

C語言的編譯器

c語言的常用編譯器 目前最流行的c語言編譯器有以下幾種 gnu compiler collection 或稱 gcc microsoft c 或稱 ms c borland turbo c 或稱 turbo c 這些c語言版本不僅實現了ansi c標準,而且在此基礎上各自作了一些擴充,使之更加方便 ...

通過GCC編譯器編譯c語言

可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。下面將通過對乙個程式的編譯來演示整個過程。include int main 1 預處理 編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數 e來參看。作用 將hello.c預處理輸出hello.i 2 編...

C語言編譯器 cc 編譯原理

生成乙個可執行的檔案通常需要經過以下幾個步驟 預處理你的源 去掉注釋,以及其他技巧性的工作就像在 c 中展開巨集。檢查 的語法看你是否遵守了這個語言的規則。如果沒有,編譯器會給出 警告。把源 轉換為組合語言 和機器 很相似,但是在一定情況下我們仍然可以理解。1 把組合語言轉換為機器語言 是的,我們在...