您的位置:首页 > 编程语言 > C语言/C++

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

2011-08-15 16:41 746 查看
#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); }


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐