C++中的宏是一种预处理指令,用于在编译时将代码中的标识符替换为指定的文本。宏定义通常用于定义常量、函数、条件编译等。宏定义的语法格式为:
#define 宏名 宏值
其中,宏名是标识符,宏值可以是任何合法的C++表达式。在编译时,预处理器会将代码中所有出现的宏名替换为宏值。例如:
#define PI 3.1415926
double area = PI * r * r;
在编译时,预处理器会将代码中的所有PI替换为3.1415926,最终生成的代码为:
double area = 3.1415926 * r * r;
宏定义还可以带有参数,称为带参数的宏定义。带参数的宏定义的语法格式为:
#define 宏名(参数列表) 宏值
其中,参数列表是用逗号分隔的参数名,宏值中可以使用参数名来表示参数的值。例如:
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int max_num = MAX(3, 5);
在编译时,预处理器会将代码中的MAX(3, 5)替换为((3) > (5) ? (3) : (5)),最终生成的代码为:
int max_num = ((3) > (5) ? (3) : (5));