define用法詳解

2021-03-04 01:18:44 字數 933 閱讀 5470

2. 巨集定義不是說明或語句,在行末不必加分號,如加上分號則連分號也一起置換。

3. 巨集定義必須寫在函式之外,其作用域為巨集定義命令起到源程式結束。如要終止其作用域可使用#undef命令。

3. 帶參巨集定義

c語言允許巨集帶有引數。在巨集定義中的引數稱為形式引數,在巨集呼叫中的引數稱為實際引數。對帶引數的巨集,在呼叫中,不僅要巨集展開,而且要用實參去代換形參。

帶參巨集定義的一般形式為:

#define 巨集名(形參表) 字串

在字串中含有各個形參。

帶參巨集呼叫的一般形式為:

巨集名(形參表)

例如:#define m(y) ((y)*(y)+3*(y)) /*巨集定義*/

....

k=m(5); /*巨集呼叫*/

....

在巨集呼叫時,用實參5去代替形參y,經預處理巨集展開後的語句為:

k=5*5+3*5

程式2:

#define max(a,b) (a>b)?a:b

main()

上例程式的第一行進行帶參巨集定義,用巨集名max表示條件表示式(a>b)?a:b,形參a,b均出現在條件表示式中。

程式第七行max=max(x,y)為巨集呼叫,實參x,y,將代換形參a,b。巨集展開後該語句為:

max=(x>y)?x:y;

用於計算x,y中的大數。

4.防止重複定義

#define 條件編譯

標頭檔案(.h)可以被標頭檔案或c檔案包含;

重複包含(重複定義)

由於標頭檔案包含可以巢狀,那麼c檔案就有可能包含多次同乙個標頭檔案,就可能出現重複定義的問題的。

通過條件編譯開關來避免重複包含(重複定義)

例如#ifndef __headerfile***__

#define __headerfile***__

…檔案內容

…#endif

typedef struct用法詳解和用法小結

1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。至於ty...

typedef struct 用法詳解和用法小結

1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。至於ty...

typedef struct 用法詳解和用法小結

1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。至於ty...