void swap(void* a, void* b)
{
	void* temp;

	temp = a;

	a = b;

	b = temp;
}

//vs

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

//매크로 풀어보기
void main()
{
	//a = 1010, b = 0011
	int a = 10, b = 3;

	a ^= b; //a = 1001 == 1010 ^ 0011;
	b ^= a; //b = 1010 == 0011 ^ 1001;
	a ^= b; //a = 0011 == 1001 ^ 1010; 
}