在 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
指令为止。宏的值替换发生在编译之前的预处理阶段,简单替换为文本,不进行类型检查。因此,在使用宏定义时需要注意它的语法和替换规则,以避免可能的错误。