C++函数-inline函数的里里外外
来源:互联网 发布:js可以抓取placeholder 编辑:程序博客网 时间:2024/05/22 08:22
inline函数背后的整体观念是,将“对此函数的每一个调用”都用函数本体来替换。
在内存有限的机器上,过度热衷于inlining会造成程序体积太大(对可用空间而言)。即使拥有虚拟内存,inline造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的点击率,以及伴随而来的效率损失。
换个角度来说,如果inline函数的本体很小,编译器针对“函数本体“所产生的的代码可能比针对”函数调用“所产出的代码更小。
1.inline函数的定义
(1)隐喻方式:将函数定义在class定义式内
(2)明确声明:在定义式前加上关键字inline。
inline函数通常一定被置于头文件内,因为大多数建制环境在编译过程中进行inlining,而为了将一个”函数调用“替换为“被调用函数的本体”,编译器需要知道那个函数长什么样子。
inline在大多数c++程序中是编译器行为。
2. inline函数使用注意
(1)virtual函数由于是在运行期才能知道具体调用哪个函数,编译器根本不知道要调用哪个,因此会使inline落空。
(2)编译器通常不对“通过函数指针而进行的调用”实施inlining,这意味着可能将inline或者不被inline,取决于调用的实施方式。
(3)不对构造函数和析构函数实施inline,构造函数往往执行了很多隐藏的操作。
(4)inline函数无法随着程序库的升级而升级,换句话说,一旦程序库改变了客户所使用的库函数,客户端程序必须进行重新编译。
- C++函数-inline函数的里里外外
- Item 30:理解inline函数的里里外外 Effective C++笔记
- C 函数 inline
- C-inline函数
- [C++]inline函数
- c++-inline 内联函数
- C++inline函数阐述
- c inline函数
- C语言inline函数
- 【C++】内联函数,inline
- C++inline函数简介
- c++inline内联函数
- C语言inline函数
- C++inline函数浅析
- C函数的 inline用法的收集
- c语言 inline函数的总结
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- Tomcat 为什么需要http server?
- 黑马程序员----面向对象之“接口”
- 上网行为、应用层协议数据特征与流量特征分析(招商合作)
- solaris普通用户修改密码后还是不能登入
- Linux环境下CGAL配置
- C++函数-inline函数的里里外外
- 超链接弹出QQ
- 产品研发过程管理专题——产品需求分析原则二
- 面向对象之字段,属性,类,实例,构造方法,重载
- HDCP 会议简记
- Python字符编码详解
- [ Tomcat ] TOMCAT 访问过程!
- 单链表反转/逆序的三种方法(整理)
- FTP上传图片不定时出现错误,求解!