带参数的宏定义详解!

作者:fly 发布于:2014-2-15 9:21 分类:嵌入式

//功能类似函数,但实质是替换
//例如add(a,b)和ad(a,b)如下
#include<stdio.h>
#define add(a,b) (a*b)
#define ad(a,b)  (a)*(b)
void main()
{int c=add(1,2);//调用第一个宏,1*2的值即2
 int d=add(1+1,2); //执行1+1*2而不是(1+1)*2所以值为3
 //解决方法
 int e=ad(1+1,2);//调用第二个宏,结果为4
 printf("%d,%d,%d\n",c,d,e);
}

发表评论:

 
Powered by emlog sitemap