宏就是直接替换,具体见例子:
#include<stdio.h>
#define Pi 3
#define S(r) Pi*r*r
int main()
{
int s1=S(10+10);
printf("%d",s1);
return 0;
}
宏替换的原则就是直接替换变量,不会添加其他的
例如本例中,S(r)Pi*r*r
宏替换结果就是 3*10+10*10+10;而不是3*(10+10)*(10+10);
本例是直接将r替换成10+10
#include<stdio.h>
#define a 10
int main()
{
int x=1,s1;
s1= x > 0 ? x : x*a;
printf("%d",s1);
return 0;
}
本例中,在计算s1的值之前,是先将a替换成10,那么 s1= x > 0 ? x : x*10;
最终s1得到的值就是0,而不是1*10。
原则!!先替换再做计算!
希望上面两个例子能让大家有所理解。