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.列舉只可以表示整型,巨集...