#define F(m,n) m*n main() { int x=5,y=3,a1,a2; a1=F(x+y,x-y)(x-y,x+y); printf("%d,%d尀n",a1,a2); }

2024-11-30 20:21:26
推荐回答(2个)
回答1:

#define F(m,n) m*n
只是在程序中出现预定义的宏语句,就用后面的表达式进行替换,例如
F(x+y,x-y) 被替换为 x+y*x-y=5+3*5-3=17; 替换时就是用x+y替换m,x-y替换n,而不是用计算x+y后的值8来替换m;
所有宏替换都是表达式替换,不是用计算后的值进行替换,所以一般需要用()分隔,不然会导逻辑混乱,例如#define F(m,n) (m)*(n)
F(x+y,x-y) 被替换为 x+y*x-y=5+3*5-3=17;
F(x-y,x+y) 被替换为 x-y*x+y=5-3*5+3=-7;
按以上所说,输出结果应为17,-7

说的不是很清楚,希望能对你有所帮助!

回答2:

阿萨德