先看一道练习题:
#include<stdio.h>
#define f(x) x*x
int main()
{
int m=6,n=3;
int a=54;
a/=f(m+n)/f(m+n);
printf("%d\n",a);
return 0;
}
这里让我们计算a的值,注意这里的宏替换,先替换再运算,注意顺序就不会弄错,这里的a/f(m+n)/f(m+n) 可以替换成a=a/(m+n*m+n),运算出来结果等于2。如果要整体替换记得在变量前面加上括号,像这样:
#include<stdio.h>
#define f(x) ((x)*(x))
int main()
{
int m=6,n=3;
int a=10;
a/=f(m+n)/f(m+n);// a/=(m+n)*(m+n)
printf("%d\n",a);
return 0;
}
结果自然是a本身,a=10;
网友评论