C語言預處理巨集命令

2021-08-15 10:32:10 字數 786 閱讀 3334

1.巨集

1.1不帶引數的巨集:

形式:#denfine 使用者識別符號 字串

(1)#define 使用者識別符號 字串

eg:#define x 5

(2)#define 使用者識別符號 表示式

eg:#define x 3*y-1

(3)#define 使用者識別符號 字串

eg:#define p printf

則p()為printf()函式,可呼叫p()輸出資訊

注:1.巨集定義不是語句,不需要在後面加分號,如果有分號,表示巨集名替換時包括後面的分號。

2.巨集定義可以層疊定義:eg:#define pi 3.1415

#define s pi*r*r

1.2帶引數的巨集

定義:#define 巨集名 字串

eg:#define s(x,y) x*y

注:1.帶引數的巨集的使用方式與帶引數的函式類似,呼叫時需要相應的引數,否則會出錯。

2.帶引數的巨集定義編譯之後只是用#define命令中的形參來替換的。

eg:#define l(x,y) sqrt(x*x+y*y)

z=l(x,y)改為z=l(x+1,y+1),這時替換後z=sqrt(x+1*x+1+y+1*y+1),要想得到正確結果則x,y應加上括號,如下所示:

#define l(x,y) sqrt((x)*(x)+(y)*(y))

3.帶引數的巨集定義名與引數之間不能有空格

eg:#define l (x,y) sqrt(x*x+y*y)

編譯不會出錯,但執行結果會出錯。

C語言 預處理命令

我們可以在c源程式中插入傳給編譯程式的各中指令,這些指令被稱為預處理器指令,它們擴充了程式設計的環境。現把常用的預處理命令總結如下 1.預處理程式 按照ansi標準的定義,預處理程式應該處理以下指令 if ifdef ifndef else elif endif define undef line ...

C語言 預處理命令

一 巨集定義 在 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集定義中的字串去代換,這稱為 巨集代換 或 巨集展開 巨集定義是由源程式中的巨集定義命令完成的。巨集代換是由預處理程式自動完成的。在 ...

C語言預處理命令

以 開頭的預處理命令。如 include,巨集定義命令 define pi 3.1415926等。在源程式中這些命令都放在函式之外,而且一般放在原始檔前面,它們稱為預處理部分。無參巨集定義 無參巨集的巨集名後不帶引數。其定義的一般形式為 define 識別符號 字串 其中的 表示這是一條預處理命令,...