C/C++中定义一个宏用以交换两个数(总结自CSDN)

来源:互联网 发布:淘宝邓紫棋专辑 编辑:程序博客网 时间:2024/05/22 10:46
#define SWAP(X,Y) { (X)=(X)+(Y); (Y)=(X)-(Y); (X)=(X)-(Y); }

 

以上的做法没有采用中间变量,使用加减法来实现两个数的交换。

考虑到使用加减法时可能会出现溢出的情况,所以最好还是采用中间变量或者使用异或运算。

 

#define SWAP_2(A,B)  { (A)=(A)^(B); (B)=(B)^(A); (A)=(A)^(B); }//将上面的SWAP_2(A,B)语句合并后可写成如下形式#define SWAP_3(A,B) { (A)^=(B)^=(A)^=(B); }



 

原创粉丝点击