今儿看数据结构时,不巧碰到一个宏交换的,感觉特高大上的赶脚(菜鸟一枚哈 没见识的哈) 如下
#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=t)
据说此宏适应于所有数据类型 于是我用我学过的所有数据类型试了一遍 没有被骗的赶脚! 至于其原理吧 与宏的定义有关
点击打开链接(来自WIKI) 点击打开链接(来自baidu)
之后又上网查了一下 发现更加高级的宏交换模式
1.#define _SWAP_(x, y);
2. do{
3. (x) = (x) + (y);
4. (y) = (x) - (y);
5. (x) = (x) - (y);
6. }while(0);
获知这个第二种没有普适性(不适合于数组与结构体)
得如下第三种(必须赞的 来自高手指点):
*#define _SWAP(x, y, Type);
do{
Type temp;
temp = x;
x = y;
y = temp;
}while(0);
声明(其上第一个算法来自书本 第二三种来自Internet)