c語言 h與 c詳解

2021-08-08 20:20:08 字數 768 閱讀 2668

首先了解編譯過程:

1.預處理階段

預處理階段根據放置在檔案中的預處理指令來修改原始檔的內容

主要包括:

①巨集定義指令:如#define a b對於這種偽指令,預編譯所要做的時將程式中的所有a用b替換,但是作為字串常量的a則不被替換

②條件編譯指令:如#ifdef,#ifndef,#else,#elif,#endif等,這些偽指令的引入使得程式設計師可以通過定義不同的巨集來決定編譯程式對那些**進行處理

預編譯程式根據有關檔案,將那些不必要的**過濾掉

③標頭檔案包含指令:如#include,該指令將標頭檔案中的定義統統都加入到它所產生的輸出檔案中,以供編譯程式對之進行處理

④特殊符號:源程式中出現line標識將被解釋為當前的行號,file則被解釋為當前被編譯的c源程式的名稱。預編譯程式對於在源程式中出現的這些字串將用合適的值進行替換

注:標頭檔案的主要目的就是為了使某些定義可以供不同的c源程式使用,這涉及到頭檔案的定位即搜尋路徑問題;

2.語法與語法分析階段

3.編譯階段

首先編譯成純彙編語句

然後翻譯成與cpu相關的二進位製碼

最後生成各個目標檔案(.obj檔案)

目的:就是將文字形式的源**翻譯為機器語言形式的目標檔案的過程

4.連線階段

將各個目標檔案,作業系統的啟動**(bootloader)和用到的庫檔案進行組織,進而形成最終可載入、可執行的**的過程

編譯:是以.c檔案為單位進行的,如果沒有c檔案則無法編譯,如果過程中c檔案中語法有問題,則會報錯

c語言中 c與 h檔案詳解

很多人對c語言中的 檔案包含 都不陌生了,檔案包含處理在程式開發中會給我們的模組化程式設計帶來很大的好處,通過檔案包含的方法把程式中的各個功能模組聯絡起來是模組化程式設計中的一種非常有利的手段。檔案包含處理是指在乙個原始檔中,通過檔案包含命令將另乙個原始檔的內容全部包含在此檔案中。在原始檔編譯時,連...

C語言指標與陣列詳解

指標與陣列是 c 語言中很重要的兩個概念,它們之間有著密切的關係,利用這種 關係,可以增強處理陣列的靈活性,加快執行速度,本文著重討論指標與陣列之 間的聯絡及在程式設計中的應用。1 指標與陣列的關係 當乙個指標變數被初始化成陣列名時,就說該指標變數指向了陣列。如 char str 20 ptr pt...

C語言 i 與i 詳解

i i 就c語言 來看,i 和 i 都只有一行,看起來似乎二者的執行效率一樣了?其實不是的,在學習c語言時,教材和老師一般都會強調 i 和 i 的區別,例如下面這段c語言 int i j,k i 0 j i i 0 k i 這段c語言 執行後,j 和 k 的值並不相等 j 等於 0,k 等於 1。既...