willsun888
5/7/2013 - 6:23 AM

宏定义交换两个数字

宏定义交换两个数字

//第一种
#define SWAP(x,y) ((x)=(x)+(y),(y)=(x)-(y),(x)=(x)-(y))
//第二种
#define SWAP(x,y) ((x)=(x)^(y),(y)=(x)^(y),(x)=(x)^(y))//比上一种更好,不会出现大数字的溢出问题
#define swap(x, y)/
//带有换行
x = x + y;/
y = x - y;/
x = x - y;

#define swap(x, y)/
x ^= y;/
y ^= x;/
x ^= y;
void main()
{
int x=3,y=4;
swap(x,y);
printf("%d,%d",x,y);
}