内联的优缺点
来源:互联网 发布:php网站源码带数据库 编辑:程序博客网 时间:2024/06/05 08:08
定义和机制
内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
优点
1、内联函数,编译器将会根据上下文环境进一步深度优化代码,而这一点是普通函数无法达到的作用
2、省略了函数调用压入堆栈和弹出堆栈所用的时间
3、常用于高频使用的函数,可以提高时间
缺点
1、编译之后代码量会偏多,内联可以说是一种以空间换取时间的方法。牺牲一定的空间来加速运行时间。增加的代码量取决于函数调用次数和函数本身的大小
2、内联函数实现的更改往往并不可以保持链接兼容性,也就是说这样的更改需要用户重新编译他们的代码
综述与注意
1、inline实现其实就是对编译器的一种请求,因此编译器完全有权利取消一个函数的内联请求。一个好的编译器会根据函数定义体,自动取消不值得的内联,一般编译器会自动过滤选择一些短小而简单的函数来内联
2、使用内联函数的时候要注意:
(1)递归函数不能定义为内联函数
(2)内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。
(3)内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。
(4)对内联函数不能进行异常的接口声明。
阅读全文
0 0
- 内联函数的优缺点
- 内联函数的优缺点
- 内联函数的优缺点
- 内联的优缺点
- inline内联函数的优缺点
- 内联(inline)函数的优缺点
- 内联函数inline优缺点
- 参数的宏、函数、内联函数的优缺点
- 深入理解内联inline函数的优缺点,性能及使用指南
- 内联的使用
- 内联函数的思考
- gcc的内联支持
- 内联函数的作用
- c++的内联函数
- 内联函数的好处
- 内联函数的作用
- C++的内联函数
- C++的内联函数
- TimeUnit用法
- 算法训练 8-2求完数
- 驱动开发文章
- W
- android调试日志不输出:AEE some logs have been lost
- 内联的优缺点
- 字符串中的空格替换
- win7远程登录方法(转载的方法,本地验证通过)
- 在/sys/class下创建访问节点
- mysql error 1045
- Java入门基础之【运算符】7
- 简述static关键字的作用?(备注:在什么条件下使用static修饰局部变量、全局变量、函数)
- Python 3.6 list对比并输出差异
- 二叉树前中后序/递归/非递归遍历/求链表差集