C++ 内联函数inline
来源:互联网 发布:c语言编程实战宝典 编辑:程序博客网 时间:2024/06/06 19:36
1. 内联函数的作用
inline 和 宏定义#define的作用基本类似,都是替换或者展开。 在程序编译阶段,如果遇到内联函数,则将内联函数的实现在当前位置展开。内联的目的是为了减少函数的调用开销,从而提高运行效率,但会增加代码体量。
注意: 内联只是一种建议,并不要求编译器必须执行。如果内联函数本身开销较大(含有for,switch,递归等),编译器可能拒绝内联展开。
2. 内联函数的实现
内联函数的实现比较简单,即在 函数定义体 前加上“inline”关键字。
注意: 仅在函数声明前加上 “inline”是不起作用的,必须加在函数定义体前。
比如,下面的实现就是无效的:
inline int add(int a, int b);int add(int a, int b){ return a + b;}
3. 内联函数的优缺点
优点:
(1)通过避免函数的回调,加速了程序的执行;
(2) 通过利用指令缓存,增强局部访问性;
(3)使用内联可以替换重复的短代码,方便代码管理;
缺点:
(1) 由于是替换展开,因此会增大代码体量;
(2)一旦修改内联,所有用到该内联的地方都需要重新编译;
4. 内联函数的使用场景
(1)需要提高程序运行效率;
(2)需要用内联替代宏定义来实现某些功能;
(3)在类中声明同时定义的成员函数,自动转化为内联函数,如果需要隐藏该函数的实现细节,则在类外定义内联;
5. 内联函数与宏的区别
(1)内联函数可调试,而宏定义不行;
(2)内联函数首先是函数,函数的很多性质都适用于内联函数,如:内联函数可以重载;编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;
(3)内联函数可以访问类的私有成员变量,宏定义则不能;
阅读全文
1 0
- c++-inline 内联函数
- 【C++】内联函数,inline
- c++inline内联函数
- C/C++内联函数(inline)
- C语言内联函数inline
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- 【C++】:C++之内联函数(inline)
- c语言中的的内联(inline)函数
- 【C++】 C++中的内联函数inline总结
- c语言中的的内联(inline)函数
- c/c++中的inline(内联函数)
- 内联函数 inline
- 内联函数inline
- inline 内联函数
- 内联函数 Inline Function
- C++内联函数(Inline)
- js打印页面
- 将本地文件上传到远程git服务器
- 设计模式六大原则-里氏替换原则
- 归并排序 原理和java实现
- 前端面试题共享
- C++ 内联函数inline
- 减少if-else使用
- 阿里云 ECS Linux系统无法SSH免密码登陆的处理办法
- 如何判断闰年
- web前端面试水平垂直居中详解
- easyui在datagrid只想选择一条
- 关于Tomcat服务器启动抛出异常的原因
- synchronized的实现原理与应用
- R语言做数据挖掘时常见问题解决方法