宏定义交换参数
来源:互联网 发布:网络报警qq 编辑:程序博客网 时间:2024/05/21 09:18
我们都知道交换int数值需要传引用或者指针,但是用宏定义也是可以的。这是为什么呢?
我们举例如下:
#include <iostream>using namespace std;#define swapdata3(a, b, type) {type temp;temp=(a);(a)=(b);(b)=temp;}int main(){ double a,b; while(cin>>a>>b) { swapdata3(a,b,double); // {type temp;temp=(a);(a)=(b);(b)=temp;} 所以可以交换 cout<<endl<<a<<" "<<b<<endl; } return 0;}
这里面设置type是因为,宏定义一般认识int,如果传double需要指定类型。
下面介绍重点啦!为什么宏定义可以交换参数呢?
因为宏定义不是函数是在调用处展开,如上面注释所示,它已展开了,就跟写在调用的地方一样,是可以正常替换的。
- 宏定义交换参数
- 《c程序设计语言》读书笔记-4.14-定义宏交换两个参数
- 定义宏交换
- 【狂人c】-笔记之定义带参数的宏,实现两个数值互相交换的功能
- 宏定义交换函数-交换两个数的值
- 宏定义交换变量 之 异或交换数原理
- 定义交换两个数的宏
- 宏定义 宏参数
- 宏定义 宏参数
- stm32-参数-宏定义
- 宏定义加参数
- 带参数的宏定义
- 可变参数的宏定义
- 可变参数的宏定义
- 参数不确定的宏定义
- 变长参数的宏定义
- 带参数的宏定义
- 宏定义中的可变参数
- 使用gdb调试共享库代码
- 如何选择Html.RenderPartial和Html.RenderAction及Html.RenderAction与Html.Action区别
- 移动互联时代的门户变局
- 概率论与数理统计学习笔记四:参数估计
- vector向量容器(containers)及迭代器(iterators)在其中的应用
- 宏定义交换参数
- 一天一个小算法
- 发育阶段
- 让<pre>标签的内容自动换行
- 编译android not reserve enough space for object heap错误
- 音频编码汇总
- Linux内核源代码顶层目录下的Makefile文件分析一
- 互联网地图2.0时代:用户产生内容是趋势
- Windows驱动_WDDM之二