C++ swap宏
来源:互联网 发布:mac imovie教程 编辑:程序博客网 时间:2024/05/22 08:15
http://bbs.csdn.net/topics/330252958
目前了解到的有SWAP(val1, val2)三种,各有优缺点
#define SWAP(x, y) \do \
{ \
(x) = (x) ^ (y) \
(y) = (x) ^ (y); \
(x) = (x) ^ (y); \
} while (0)
#define SWAP(a, b) \
do \
{ \
typeof(a) tmp; \
tmp = (a); \
(a) = (b); \
(b) = tmp; \
} while (0)
#define SWAP(m, n) \
do \
{ \
(x) = (x) - (y)\
(y) = (x) - (y)\
(x) = (x) + (y)\
} while (0)
第一种:优点有,不用担心数据交换过程中出现溢出
缺点有,不能实现float型数据的交换(无法处理含小数点数据)
第二种:优点是,相对第一种而言,他可以进行更多类型的数据交换
缺点是,有少数编译器不支持typeof 关键字的用法
第三种:优点是,相对第二种而言,他不收编译器的限制,可以进行多种类型数据交换
缺点是,在想x + y或x - y 过程中可能会溢出
- C swap
- C语言swap
- C语言swap函数
- C语言swap函数
- 【C语言】[其他]:宏定义swap(x,y)
- 【C语言】Linux内核源码--min,swap宏定义
- c语言swap函数总结
- C语言swap函数总结
- c语言swap函数总结
- [C++]Swap 整数交换;指针
- C语言 指针应用-swap()
- 宏实现swap算法
- C++ swap宏
- 宏定义实现swap
- swap
- swap
- swap
- swap
- SQL Server XML基础学习<2>之--FOR XML AUTO/RAW
- Android 记录和恢复ListView滚动的位置的三种方法
- VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?
- Extjs4学习资料(TreeStore使用)
- redirect与forward区别
- C++ swap宏
- js刷新页面方法大全
- hdu1498 50 years, 50 colors
- 笔记-2003-A Maximum Entropy Chinese Character-Based Parser
- 微软strcpy,strcat和strcmp的实现源代码
- Struts1和struts2的执行流程
- 虚拟化、云计算、开放源代码及其他
- 《windows核心编程》读书笔记——内存体系结构
- 旧工程适配ios6和iphone5 之 适配ios6转屏