巨集定義及帶引數的巨集定義

2021-07-02 02:26:31 字數 662 閱讀 4490

#include

//巨集定義,通常用於定義常量,在**轉換成二進位制檔案時會將**中的巨集名稱替換成值

//#define 巨集名稱 值

#define a 1

//帶引數的巨集 fun(a,b)為巨集的名稱 a+b為巨集的值

//帶引數的巨集比函式效率高

#define fun(a,b) a*b

//為了保證替換結果,最好加入()運算子

#define fun2(a,b) ((a)*(b))

/* 預處理指令有三種:

1.巨集定義 (#define,#undef)

2.檔案包含 (#include)

3.條件編譯 (#if,#elif,#else,#endif)

注意:1.預處理指令在**轉換成二進位制檔案0、1之前執行

2.預處理指令可在任意位置編寫

3.預處理指令的作用域範圍是從指令開始到檔案結尾結束

*/int main()

void printb()

執行結果

1

2printb()中的2

------------------------------

r1=7, r2=16

帶引數的巨集定義

不是進行簡單的字串替換,還要進行引數替換。其定義的一般形式為 define 巨集名 參數列 字串 字串中包含在括弧中所指定的引數。如 define s a,b a b area s 3,2 定義矩形面積s,a 和 b 是邊長。在程式中用了s 3,2 把3 2分別代替巨集定義中的形式引數a b,即用 ...

不帶引數的巨集定義與帶引數的巨集定義

巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯 1.不帶引數的巨集定義 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨集名替換為字串...

mysql巨集引數 C語言帶引數的巨集定義

c語言允許巨集帶有引數。在巨集定義中的引數稱為 形式引數 在巨集呼叫中的引數稱為 實際引數 這點和函式有些類似。對帶引數的巨集,在展開過程中不僅要進行字串替換,還要用實參去替換形參。帶參巨集定義的一般形式為 define 巨集名 形參列表 字串 在字串中可以含有各個形參。帶參巨集呼叫的一般形式為 巨...