作业帮 > 综合 > 作业

#define F(m,n) m*n main() { int x=5,y=3,a1,a2; a1=F(x+y,x-y)

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/02 02:19:18
#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); }
#define F(m,n) m*n
main()
{ int x=5,y=3,a1,a2;
a1=F(x+y,x-y);a2=(x-y,x+y);
printf("%d,%d\n",a1,a2);
}
不好意思 打错了
#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
说的不是很清楚,希望能对你有所帮助!