代码
// An highlighted block
#include <stdio.h>
#define swap1(x,y) t = x; x = y; y = t;
#define swap2(x,y) t = x,x = y,y = t;
#define swap3(x,y) t = x; x = y; y = t
#define swap4(x,y) t = x,x = y,y = t
int main()
{
int x = 1;
int y = 2;
int t = 0;
t = x,x = y,y = t;
printf("x = %d,y = %d,t = %d\n", x,y,t);
swap1(x,y)
printf("x = %d,y = %d,t = %d\n", x,y,t);
swap2(x,y)
printf("x = %d,y = %d,t = %d\n", x,y,t);
swap3(x,y);
printf("x = %d,y = %d,t = %d\n", x,y,t);
swap4(x,y);
printf("x = %d,y = %d,t = %d\n", x,y,t);
return 0;
}
运行结果
结论
如果宏定义最后自己有分号,调用时可以不加分号
// An highlighted block
#define swap1(x,y) t = x; x = y; y = t;
// An highlighted block
swap1(x,y) //不加分号正常运行
一行语句可以执行多个赋值语句,用逗号隔开即可
// An highlighted block
t = x,x = y,y = t;