inline内联函数
来源:互联网 发布:遗传算法理解 编辑:程序博客网 时间:2024/05/22 06:20
一、内联函数 :内联函数是指用inline关键字修饰的函数
它与普通函数所不同之处只在于函数调用的处理。普通函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;内联函数不是在调用时发生执行权转移,而是在编译时将“函数体”嵌入在每一个调用处。编译时类似宏替换,使用函数体替换调用处的函数名。调用几次就替换几次,这样省去了函数调用时的一些额外开销,比如保存和恢复函数返回地址等,可以加快速度。不过调用次数多的话,会使可执行文件变大,这样会降低速度。
二、static inline :使用的inline函数大多被定义为static 类型。
static inline的内联函数,一般情况下不会产生函数本身的代码,而是全部被嵌入在被调用的地方。如果不加static,则表示该函数有可能会被其他编译单元所调用,所以一定会产生函数本身的代码。所以加了static,一般可令可执行文件变小。一般很少只用inline的情况,都是使用static inline。
三、在使用内联函数时,应注意如下几点:
- 内联函数是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 适合于只有1~5行的小函数。对一个含有许多语句的大函数,函数调用和返回的开销相对来说微不足道,所以也没有必要用内联函数实现。
- 在内联函数内不允许用循环语句和开关语句。如果内联函数有这些语句,则编译将该函数视同普通函数那样产生函数调用代码,递归函数(自己调用自己的函数)是不能被用来做内联函数的。
- 内联函数的定义必须出现在内联函数第一次被调用之前。
0 0
- 内联函数 inline
- 内联函数inline
- inline 内联函数
- 内联函数 Inline Function
- C++内联函数(Inline)
- 关于内联函数inline
- 内联(inline)函数~
- C++内联函数(Inline)
- inline 内联函数
- C++内联函数(Inline)
- 内联函数 -- inline总结
- inline内联函数
- C++内联函数(Inline)
- 内联函数(Inline Function)
- C++内联函数(Inline)
- CG_INLINE,inline 内联函数
- C++内联函数 inline
- 内联函数inline
- Android StrictMode 检测
- python 多线程
- 数据结构与算法 (二叉搜索树)
- 并查集
- 清华赵骥主任与CIO石海军研讨互联网信息化
- inline内联函数
- webkit开发前的准备工作
- android 调用系统的照相机和图库实例详解
- 五分钟一个设计模式之工厂方法模式
- Python语法实践之初探列表推导与生成器
- JavaBean
- [leetcode][search] Find Minimum in Rotated Sorted Array II
- 黑马程序员_Java(字符流)
- 利用百度API画多边形的问题