define 叫做宏定义命令,它也是C语言预处理命令的一种。
所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。
1.宏定义
宏定义语法格式如下:
//宏定义的一般形式为:
#define 宏名 字符串
//#表示这是一条预处理命令,所有的预处理命令都以 # 开头。宏名是标识符的一种,命名规则和变量相同。
//字符串可以是数字、表达式、if 语句、函数等。
//这里所说的字符串是一般意义上的字符序列,不要和C语言中的字符串等同,它不需要双引号。
//程序中反复使用的表达式就可以使用宏定义,例如:
#define M (n*n+3*n)
实例:
#include<stdio.h>
#define PI 3.14159
double getCircle(double r){
return 2*PI*r;
}
double getArea(double r){
return PI*r*r;
}
int main()
{
double r=10.0; //半径
printf("圆的周长是:%lf\n",getCircle(r));
printf("圆的面积是:%lf\n",getArea(r));
return 0;
}
运行结果:
圆的周长是:62.831800
圆的面积是:314.159000
2.带参数的宏定义
//一般形式
#define 宏名(参数列表) 字符串
//带参调用的一般形式
宏名(实参列表);
实例:
#include<stdio.h>
#define MAX(a,b) ((a>b)?a:b)
int main()
{
int x,y,max;
printf("input two numbers:\n");
scanf("%d %d",&x,&y);
max=MAX(x,y);
printf("max=%d\n",max);
return 0;
}
运行结果:
input two numbers:
12
9
max=12