C語言宏定義是一種預處理指令,用于在程序編譯之前進行文本替換。宏定義可以將一個標識符(通常是一個函數或常量)替換為指定的代碼段或值。
宏定義的一般形式是:
#define 宏名 替換文本
宏名是標識符,替換文本可以是一個常量、表達式、語句或其他代碼段。當程序中出現宏名時,預處理器會將其替換為相應的替換文本。
宏定義的用法有以下幾種:
#define PI 3.14159
這樣在程序中使用PI時,會被替換為3.14159。
#define MAX(a, b) ((a) > (b) ? (a) : (b))
這樣在程序中使用MAX(a, b)時,會被替換為求取a和b中較大值的代碼。
#define DEBUG
#ifdef DEBUG
// debug code
#else
// release code
#endif
#define SQUARE(x) ((x) * (x))
這樣在程序中使用SQUARE(x)時,會被替換為求取x的平方的代碼。
需要注意的是,宏定義是在預處理階段進行文本替換,不進行類型檢查,容易產生一些不可預期的錯誤,因此在使用宏定義時需要謹慎。