C语言问题:如何在宏定义时,让宏的参数互换?

来源:百度知道 编辑:UC知道 时间:2024/06/02 21:44:54
定义一个带参数的宏,使两个参数的值互换。如何在预处理命令中做到?

我的程序如下:
#define A(a,b) b=a a=b
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
A(x,y);
printf("%.2lf %.2lf",x,y);
getch();
}

请问错误在哪里?
我自己已经解决了

程序如下:#define A(a,b,k) k=b;b=a;a=k;
main()
{
double x,y,z;
printf("please input x=");
scanf("%lf",&x);
printf("please input y=");
scanf("%lf",&y);
A(x,y,z)
printf("x`=%.1lf y`=%.1lf",x,y);
getch();
}

宏定义时最好加上()

#define A(a,b) b=a a=b错了,改为
#define A(a,b) a=a^b;b=a^b;a=a^b;

没有分号
#define A(a,b) b=a;a=b;
我记得宏是直接替换的吧

对啊
互换必须利用第三者