編譯預處理

2021-08-07 02:37:42 字數 671 閱讀 6942

c語言中的編譯預處理包括三個部分:巨集定義、檔案包含、條件編譯。

1、巨集定義:不帶引數的巨集定義:

格式:#define 名字 常量 ,不用加「;」。

#define r 30

#define pi 3.1415926

#define c 2*pi*r

#deefine s pi*r*r

(層層置換)

帶引數的巨集定義:

格式:#define 名字 公式,也不用加「;」.

#define s(x,y) x*y

在主函式中用到「s(x,y)」時,用x*y這個公式計算值。

例:`define s(x,y)

int main()

`

且只是機械替換:#define s(r) pi*r*r

s(a+b)=pi*a+b*a+b;

除非在定義時,定義為:#define s(r) pi*(r)*(r)

*巨集與函式的區別:函式呼叫先求表示式的值,然後代入形參;

巨集只是機械替換。

2、檔案包含:#define 「檔名」

#define 「file2.cpp」

只可將另乙個原始檔的全部內容包含進來。

3、條件編譯:有選擇地對程式的某一部分進行編譯。

編譯預處理

所謂編譯預處理,就是在c源程式的編譯之前,由編譯預處理程式對這些編譯預處理命令進行處理的過程。最常見的就是常量的替換。編譯預處理按功能可以分為巨集定義,檔案包含和條件編譯三類。編譯預處理命令以 開頭,下面進行詳細說明 一.巨集定義與符號常量 1.無參巨集定義 define 識別符號 字串 1 巨集名...

編譯預處理

1.巨集定義指令 1 定義變數與命令 避免幻數 在巨集定義命名時,盡量能清楚的表明功能,大寫 不能以 開頭易與內建巨集衝突 2 定義巨集函式 define max a,b a b a b int num max 6,5 6 5 6 5 用編譯時間換記憶體空間的是巨集函式 用記憶體空間換執行空間的是內...

編譯預處理

1 定義常量與命令 避免幻數 定義巨集時,避免以 開頭,以防與內建巨集定義衝突。巨集和列舉的區別 a.列舉常量是實體常量中的一種,但巨集不是實體 b.列舉常量屬於常量,但巨集不是常量 c.列舉常量具有型別,但巨集沒有型別。列舉型別主要用於限制性輸入,巨集只是預處理替換符 d.列舉只可以表示整型,巨集...