C C 中的 define的使用

2021-10-04 10:17:30 字數 1145 閱讀 1289

一、#define在c/c++中的使用

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

1、在c或c++語言中,「巨集」分為有引數和無引數兩種。

(1)無引數的「巨集」

其定義的一般形式為:

#define 識別符號(巨集名) 字串(常數、表示式、格式串)

例如:

#define max 1000
指在編寫源程式時,所有的「識別符號」來代替「字串」。max 代表1000。

**展示:

//define定義識別符號常量

#define max 1000

//define定義巨集

#define add(x, y) ((x)+(y))

#include

intmain()

(2)有引數的「巨集」

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

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

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

例如:

#define add(x, y) ((x)+(y))
有引數的巨集中,字元是沒有型別的,而函式數形參是有型別限制的。

2、防止重複定義

#define 條件編譯時,標頭檔案(.h)可以被標頭檔案或點c和點cpp檔案包含;由於標頭檔案包含可以巢狀,那麼c檔案就有可能包含多次同乙個標頭檔案,就可能出現重複定義的問題的。

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

例如:

#ifndef __headerfile***__

#define __headerfile***__//通過條件編譯開關來避免重複包含(重複定義)

#endif

淺淡C C 中的typedef和 define

在c c 中,我們平時寫程式可能經常會用到typedef關鍵字和 define巨集 定義命令,在某些情況下使用它們會達到相同的效果,但是它們是有實質性的區別,乙個是c c 的關鍵字,乙個是c c 的巨集定義命令,typedef 用來為乙個已有的資料型別起乙個別名,而 define是用來定義乙個巨集定...

淺淡C C 中的typedef和 define

在c c 中,我們平時寫程式可能經常會用到typedef關鍵字和 define巨集 定義命令,在某些情況下使用它們會達到相同的效果,但是它們是有實質性的區別,乙個是c c 的關鍵字,乙個是c c 的巨集定義命令,typedef 用來為乙個已有的資料型別起乙個別名,而 define是用來定義乙個巨集定...

C C 中的typedef和 define的區別

在c c 中,我們平時寫程式可能經常會用到typedef關鍵字和 define巨集 定義命令,在某些情況下使用它們會達到相同的效果,但是它們是有實質性的區別,乙個是c c 的關鍵字,乙個是c c 的巨集定義命令,typedef 用來為乙個已有的資料型別起乙個別名,而 define是用來定義乙個巨集定...