码迷,mamicode.com
首页 > 编程语言 > 详细

C++_内联函数

时间:2019-02-23 00:59:46      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:使用   效率   参数   调用   系统   程序代码   函数调用   编译器   strong   

内联函数的目的是为了提高程序运行速度所做的一项改进。

       常规函数内联函数的区别不在于编写方式,而在于C++编译器如何将它们组合到程序中。

       编译过程的最终产品是:可执行程序,由一组机器语言指令组成。运行程序时,操作系统将这些这令载入到计算机内存中。

       常规的函数调用过程:执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址。并将函数参数复制到堆栈(为此保留的内存块)。跳到标记函数起点的内存单元,执行函数代码,然后跳回到地址被保存的指令处。来回跳跃并记录跳跃位置意味着以前使用函数时有一定的开销。

       内联函数提供另一种选择,内联函数的编译代码与其他程序代码“内联”起来了。编译器将使用相应的函数代码替换函数调用。这样运行的速度比常规函数稍快,但是代价是需要占用更多内存。

       应有选择地使用内联函数。如果执行函数代码的时间比处理函数调用机制的时间长。则节省的时间很有限。如果代码执行时间很短,则内联调用可以节约相对多的时间。

 

       要使用该特性,要在函数声明前、函数定义前加上关键字inline;通常情况是省略原型,将整个定义放在本应提供原型的地方。

 

这里要注意内联函数的链接性是内部的,这意味着函数定义必须在使用函数的文件中。函数的定义和使用不能在不同的文件中。

其实内联函数适合那种较短函数,多次调用的情况。

多次调用,由于内联性的存在,提高了效率。

较短的函数,减少空间的占用,尽量减少内联函数的弊端,占用空间的特点。

C++_内联函数

标签:使用   效率   参数   调用   系统   程序代码   函数调用   编译器   strong   

原文地址:https://www.cnblogs.com/grooovvve/p/10421378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!