联系方式

咨询热线:400-998-6158

点击此处免费预约试听课程»

常见问题
学习资讯
学习资讯

C语言带参数的宏定义

C语言带参数的宏定义

C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实际参数”,这点和函数有些类似。


对带参数的宏,在展开过程中不仅要进行字符串替换,还要用实参去替换形参。

带参宏定义的一般形式为:

#define 宏名(形参列表) 字符串

在字符串中可以含有各个形参。

带参宏调用的一般形式为:
宏名(实参列表);
例如:
#define M(y) y*y+3*y  //宏定义
// TODO:
k=M(5);  //宏调用
在宏展开时,用实参 5 去代替形参 y,经预处理程序展开后的语句为k=5*5+3*5

【示例】输出两个数中较大的数。
纯文本复制
		
  1. #include <stdio.h>
  2. #define MAX(a,b) (a>b) ? a : b
  3. int main(){
  4. int x , y, max;
  5. printf("input two numbers: ");
  6. scanf("%d %d", &x, &y);
  7. max = MAX(x, y);
  8. printf("max=%d\n", max);
  9. return 0;
  10. }
运行结果:
input two numbers: 10 20
max=20

程序第 2 行定义了一个带参数的宏,用宏名MAX表示条件表达式(a>b) ? a : b,形参 a、b 均出现在条件表达式中。程序第 7 行max = MAX(x, y)为宏调用,实参 x、y 将用来代替形参 a、b。宏展开后该语句为:
max=(x>y) ? x : y;
学校联系方式

更多培训课程,学习资讯,课程优惠等学校信息,请进入 东莞达内教育东莞软件测试培训东莞C语言培训 网站详细了解,免费咨询电话:400-998-6158

相关课程