← 返回首页
C语言系列教程(二十五)
发表时间:2021-03-27 18:20:32
宏定义

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