#include<stdio.h>
#define m(x,y)(x/y)
int main()
{
printf("%d",m(3+4,6*2));
return 0;
}
define定义函数时,可以看成是一个简单的替换
比如:#define Add(a,b) a+b;
如果 y = c * Add(a,b) * d
的时候就会出现问题,代数式的本意是 a+b
然后去和 c
,d
相乘,但是因为使用了define,所以式子实际上变成了 c*a + b*d
所以这里的式子:m(3+4,6*2) = 3+4/6*2
= 3 + 0 * 2 = 3 + 0 = 3
别用宏了,用函数吧,变为3+4/6*2了,宏只能简单用一下。如定义两个变量
int a,b;
a=3+4;
b=6*2;
m(a,b);
=```
```