转自https://my.oschina.net/mjRao/blog/190762
swap 函数的四种写法
(1)经典型 --- 嫁衣法
void swap(int *a, int *b)
{int temp;
temp = *a;
*a = *b;
*b = temp;
}
(2)经典型改进版 --- 泛型法
void swap(void *a, void *b, size_t size)
{unsigned char *p = (unsigned char *)a;
unsigned char *q = (unsigned char *)b;
unsigned char temp;
while(size--)
{temp = *p;
*p = *q;
*q = temp;
p ++;q ++;
}
}
还有两种就不用temp直接用a,b的位运算符做,炫技>实用,就不放了。主要是这个泛型法。
另外关于size_t,可以参考这篇http://blog.csdn.net/wdjhzw/article/details/39452815