c语言怎样用宏实现两数的交换

2025-01-01 06:05:17
推荐回答(4个)
回答1:

第一种方法,用位运算
#define swap(a,b) {a^=b;b^=a;a^=b;}
第二种方法,用加减
#define swap(a,b) {a+=b; b=a-b; a=a-b;}

回答2:

可以利用加减来实现这个功能:#define swap((a),(b)) {(a)+=(b); (b)=(a)-(b); (a)=(a)-(b);}

回答3:

实现不了、因为必须有个中间变量,除非你定义一个函数,再用宏定义这个函数

回答4:

为安全,最好都加上括号#define swap((a),(b)) {(a)+=(b); (b)=(a)-(b); (a)=(a)-(b);}