相信学过C语言的同学都对C语言中的宏定义有一定的了解,而在实际编写程序时往往程序员都会加入带参数的宏,那么究竟什么是带参数的宏定义呢?下面课课家笔者就为大家介绍C语言中带参数的宏定义。
在C语言中,通常允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,这方面和函数有些类似。对带参数的宏,我们在调用中的时候不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式为:#define宏名(形参列表)字符串。从字符串中我们可以看到含有各个形参。带参宏调用的一般形式为:宏名(实参列表);。具体代码例子如下:
#defineM(y)y*y+3*y//宏定义
//Code
k=M(5);//宏调用
在我们进行宏调用时,用实参5去代替形参y,经预处理宏展开后的语句为k=5*5+3*5。下面笔者以输出两个数中较大的数的代码例子为例给大家讲解。
#include
#defineMAX(a,b)(a>b)?a:b
intmain(){
intx,y,max;
printf("inputtwonumbers:");
scanf("%d%d",&x,&y);
max=MAX(x,y);
printf("max=%d\\n",max);