在 C++ 中,#define
是一個預處理指令,用于定義宏。宏是一種簡單的文本替換機制,它可以用來定義常量、函數以及條件編譯等。
#define
的語法格式為:
#define 宏名 值
其中,宏名是一個標識符,可以是任何合法的標識符名稱,而值可以是一個常量、一個表達式或者一個函數。
以下是 #define
的幾種常見用法:
定義常量:
#define PI 3.14159
#define MAX_SIZE 100
定義函數宏:
#define SQUARE(x) ((x) * (x))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
條件編譯:
#define DEBUG
#ifdef DEBUG
// 在調試模式下執行的代碼
#endif
#ifndef DEBUG
// 在非調試模式下執行的代碼
#endif
禁止宏的重定義:
#ifndef MACRO_NAME
#define MACRO_NAME
// 宏的定義
#endif
宏定義的作用范圍是從它被定義的位置開始,直到源文件的末尾或者遇到了另一個 #undef
指令為止。宏的值替換發生在編譯之前的預處理階段,簡單替換為文本,不進行類型檢查。因此,在使用宏定義時需要注意它的語法和替換規則,以避免可能的錯誤。