带参宏的定义 百度的

c语言 允许宏带有参数。
在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏, 在调用中,不仅要宏展开,而且要用实参去代换形参。  
 带参宏定义的一般形式为:
  #define  宏名(形参)   表达式
 在表达式中含有各个形参。
 带参宏调用的一般形式为:
    宏名(形参)   
例如:  
 #define M(y) ((y)*(y)+3*(y))  

 ....   

   k=M(5);  

  ....   

在宏调用时,用实参5去代替形参y,经预处理宏展开后的语句为:  k=5*5+3*5   


程序2:  
 #define MAX(a,b) (a>b)?a:b   
main()
{   
int x,y,max;   
printf("input two numbers: ");   
scanf("%d%d",&x,&y);   
max=MAX(x,y);   
printf("max=%d\n",max);  
}   
上例程序的第一行进行带参宏定义,用宏名MAX表示条件表达式(a>b)?a:b,
形参a,b均出现在条件表达式中。程序第七行max=MAX(x,y)为宏调用,实参x,y,
将代换形参a,b。

宏展开后该语句为:   
max=(x>y)?x:y;   
用于计算x,y中的大数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值