#define sum(v1, v2) ((1)+(v2)) //v1+v2应该加括号,否则会出现运算顺序问题,因为宏定义在执行时,只作文本替换,不管运算顺序
#define pingfang(a) ((a)*(a)) //应该把a括上,同样会出现运算顺序的问题
int main()
{
int a = 10;
int b = 20;
int c = sum(a, b);
int d = pingfang(10)/pingfang(2); //10*10/2*2
int e = pingfang(5+5); //5+5*5+5
printf(“c=%d, d=%d, e=%d\n”, c, d, e);
return 0;
}
三、条件编译
在很多情况下,我们希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行),这就是条件编译。
只要写了#if,在最后面必须加上#endif