博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

内联函数

Posted on 2012-12-13 15:29  星尘的天空  阅读(207)  评论(0编辑  收藏  举报

内联函数:

一般来说,当我们定义了一个函数之后,编译器就会在内存中为其创建一个指令集,当我们调用该函数的时候,程序就会跳转到该函数处。当该函数运行完毕后,程序又返回到原来执行调用该函数的下一行继续执行。加入对该函数执行了上百次的调用,那么就要来回跳转上百次,很明显这是相当影响程序执行效率的。

对此C++有一种解决的方式,即使用关键字inline来声明函数。编译器将不会生成真正的函数,而只是将这个内联函数的所有代码拷贝到调用函数中去,这样程序在执行调用该函数的时候就不需要来回跳转,自然就会提高了程序的运行效率。但是任何的事情都会有两面性,使用内联函数在提高效率的同时,也会付出一些代价,比如说程序调用了内联函数100次,那么就会将该内联函数中的代码复制100次,这样无形中就会增大程序的体积。当然我们也有种折中的选择,假如内联函数的体积很小,因此即使我们复制很多次也不会增加太大的代码体积,因此在这种情况下,我们使用内联函数还是相当的划算的。

因此:当函数提交较小,但是又频繁调用的情况下,建议我们使用内联函数,反之则不建议使用内联函数。

 

 

THE END!

2012年12月13日