概念:C语言中我们自定义的特殊标识符,习惯大写。
分类:分为有参数和无参数
宏替换:源程序在编译之前,由预处理程序对我们写的源代码进行处理:会把所有出现宏名的地方一律使用宏的字符串去替换。
无参宏:
1、定义:#define 宏名 宏字符串(可以是常量、变量、表达式)
2、注意:预处理指令,经常写在函数之前
3、注意事项:
(1)宏是有作用的,#undef可以取消宏定义
(2)在字符串中出现的宏名不会被替换。
(3)宏可以嵌套定义
#define R 3
#define PI 3.14
#define AREA PI*R*R
(4)使用宏起别名
#define INT1 int
- INT1 a1;
- a1=10;
#define P struct Person
- P{
int age;
};
P p1={23};
有参宏:#define SUM(a) a+a;
注意事项:
(1)宏的形参之间可以出现空格,但是宏名和形参之间不能出现空格
(2)有参宏宏的参数最好用括号括起来
(3)可以用宏来定义多个语句
案例:使用有参宏获取最大值
#define MAX(x,y) x>y?x:y
- int a=MAX(88,111);
- printf(“%d\n”,a); //控制台输出111 |
|