一、#define在c/c++中的使用
在c或c++語言源程式中允許用乙個識別符號來表示乙個字串,稱為「巨集」。被定義為「巨集」的識別符號稱為「巨集名」。在編譯預處理時,對程式中所有出現的「巨集名」,都用巨集定義中的字串去代換,這稱為「巨集代換」或「巨集展開」。巨集定義是由源程式中的巨集定義命令完成的。巨集代換是由預處理程式自動完成的。
1、在c或c++語言中,「巨集」分為有引數和無引數兩種。
(1)無引數的「巨集」
其定義的一般形式為:
#define 識別符號(巨集名) 字串(常數、表示式、格式串)
例如:
#define max 1000
指在編寫源程式時,所有的「識別符號」來代替「字串」。max 代表1000。
**展示:
(2)有引數的「巨集」//define定義識別符號常量
#define max 1000
//define定義巨集
#define add(x, y) ((x)+(y))
#include
intmain()
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是用來定義乙個巨集定...