#define的用法經常不理解,特開一個總結帖。
-
數據類型的替換
#define CONST(type, memclass) const type
當遇到CONST(type, memclass) 的時候,會被const type 所替代。 -
普通的數字替換
#define kk 10 -
防止重複編譯
“app.h”文件中包含函數max()的定義;
此時如果,“bpp.h”文件和“cpp.h”同時#include“app.h” 且“bpp.h” 文件中#include“cpp.h”,就會出現重複編譯max()的問題,但是如果 “app.h”有:
#ifndef _APP_H
#define _APP_H
能避免問題的出現。 -
空替換
#define DCM_CODE
定義宏,並在預處理過程中將其替換爲空字符串(即刪除)。這樣做主要是爲了標記某些內容,使程序閱讀者能夠清楚標記表明的意義,同時又不影響被編譯的源代碼。