C++中使用const 变量替换宏定义
当然C++中也有使用inline 函数替换宏代码片段;

#include <iostream>using namespace std;inline void printfA()
{int a =10;cout << "a = " << a << endl;}
int main()
{printfA();cout << "hello world!"<<endl;system("pause");return 0;
}

其实 内联函数只是让C++编译器知道什么是内联函数 处理的时候回去替换整个一段代码的片段,其他的对于程序员来说都是一样的,直接可以当成普通的函数处理;

  1. 内联函数必须和实现 的函数体写在一块,不能进行声明,虽然声明内联函数能够通过编译,但是经过声明内联函数C++有可能不会将其在当做成内联函数处理;
  2. 内联函数内有普通函数的开销,没有压栈,跳转返回,所以速度很快,通常将短小精悍的函数定义成内联函数;
  3. 内联函数也有普通函数的特征,会进行参数的检查返回类型的检查等
  4. 内联函数是对编译器的一种请求,所以编译器可能会拒绝这种请求;
  5. 内联函数由编译器处理直接编译之后将函数体插入调用的地方
  6. 宏代码片段由宏处理器处理,进行简单的替换,没有任何的编译过程
  7. 内联函数由编译器处理,因此一些函数即使没有声明内联函数,也可能被编译器处理成内联函数

函数的占位参数 函数调用时必须写够参数

void printfA(int a,int b,int)
{cout << a << b<<endl;
}
//调用的时候必须歇够三个参数
如printfA(3,2,1);

占位参数和默认参数结合为以后的程序扩展留下线索

#include <iostream>using namespace std;void kuozhan(int a,int b,int  =1)
{cout << "a =" << a <<"b = " << b << endl;
}int main()
{kuozhan(1,2);kuozhan(1,2,3);cout << "hello world!"<<endl;system("pause");return 0;
}

C++的inline函数相关推荐

  1. 关于inline函数

    (一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...

  2. C++ inline函数和宏

    1. 内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: int max(int a, int b) {return a > b ? a : b; } 为这么一个小的操作定义一个函数 ...

  3. inline函数使用容易导致出错的问题

    对于inline函数,首先应该要短小(inline只是对编译器的一个建议,编译器是可以忽略的),其次inline函数的定义一定要与调用它的部分在同一个源文件里,不同的源文件可以分别定义一个相同inli ...

  4. inline函数学习笔记

    一.c++ inline函数产生原因 由于函数调用会有一定的时间和空间方面的开销,特别是对于一些函数体代码不大但又被频繁调用的函数来讲,效率是很低的. 在C语言中,可以用宏函数来提高上面那种情况的效率 ...

  5. html中inline函数,开窗函数和窗口函数区别 inline函数和一般的函数有什么不同

    sql over开窗函数 和group by的区别 / 蓝讯如果有多个聚合函数,但是分组依据不同,此时只能使用开窗函数. 而GROUP BY要求聚合函数的分组依据一致. SQL Server中的开窗函 ...

  6. C++的优秀特性2:inline 函数

    (转载请注明原创于潘多拉盒子) Inline函数是C++的一个很小的特性,在不计较效率的情况下,这个特性似乎可有可无.然而,C++天生是为最为广泛的应用场景设计的,因此,总会有关于效率的问题.其实,除 ...

  7. 【转】 嵌入式C语言编程中Inline函数的应用

    源地址:https://blog.csdn.net/vigour1000/article/details/9622037 有一段儿时间没写写经验笔记了,哎,也是自己这一段时间以来(其实最近一直是这个状 ...

  8. Inline函数使用注意事项

    Inline函数使用注意事项 1.在一个文件中定义的inline函数不能再另一个文件中使用 2.inline函数应简洁,只有少数几个语句. 3.在inline函数中不能有循环,if,switch语句. ...

  9. C++之inline函数

    1.为什么需要inline C中的宏没有调用,参数压栈.返回操作所以比函数快,但是有参数副作用,inline为了取代这种表达式形式的宏定义,它消除了宏定义的缺点,同时又很好地继承了宏定义的优点.   ...

最新文章

  1. 收藏 | 机器学习数据集汇总收集
  2. word中链接到目标后返回快捷键
  3. 解析:Web前端未来的前景如何呢?
  4. url.getinputsteam 获取不完整_年度营销方案合集,活动策划,规划推广,全内容完整套用告别加班...
  5. [HEOI2016TJOI2016]排序(二分+线段树)
  6. 广域信息服务器,网络工程师之广域信息服务
  7. unset是不能清除保存在本地电脑上的cookie的,用于session就可以(弄了半天原来是这样)...
  8. 数据结构学习笔记:利用栈实现进制转换
  9. 为什么农产品电商不好做
  10. Facebook 会沦落为二十年前的微软吗?
  11. 公钥与私钥,数字签名
  12. JSTL核心标签库详解
  13. 服务器断开消息,Websockets - 断开服务器消息
  14. 计算机编码器的工作原理,优先级编码器74LS148的电路结构、工作原理及使用方法...
  15. java 二进制加减_二进制加法Java实现
  16. 现场总线与计算机网络的最大区别,现场总线与局域网的区别是什么
  17. 英语四级口语测试软件,2021年大学英语四级口语测试题
  18. react 组件 进阶之 ref (ts 版本)
  19. java计算机毕业设计 - 大转盘抽奖微信小程序
  20. Linux内核源码阅读以及工具(转)

热门文章

  1. hihocoder Tower Defense Game(树上贪心)
  2. 1951: [Sdoi2010]古代猪文
  3. NYOJ 330 一个简单的数学题
  4. error: goland --build constraints exclude all Go files
  5. 浅入深出Vue:文章编辑
  6. BZOJ3451 Normal 期望、点分治、NTT
  7. MasterSlave是什么?
  8. Unity3d疑难问题解决
  9. VMware linux虚拟机在线识别新添加磁盘
  10. 最邻近插值法(The nearest interpolation)实现图像缩放