现在的位置: 首页 > 综合 > 正文

定义交换两个数的宏

2019年03月01日 ⁄ 综合 ⁄ 共 204字 ⁄ 字号 评论关闭

#define    swap(a,b)   (a)^=(b)^=(a)^=(b)

要点:1、元素加小括号,为了防止swap(1+2,2+3)这种情况。

            2、采用异或的方式,防止溢出。

另,#define   swap(a,b)      do{a = a^b;b=a^b;a=a^b;}while(0)这种形式也可以,

加do,while是为了防止

if()

 swap(a,b);

else

  do somethig

这种情况的发生。

抱歉!评论已关闭.