内联函数:
一般来说,当我们定义了一个函数之后,编译器就会在内存中为其创建一个指令集,当我们调用该函数的时候,程序就会跳转到该函数处。当该函数运行完毕后,程序又返回到原来执行调用该函数的下一行继续执行。加入对该函数执行了上百次的调用,那么就要来回跳转上百次,很明显这是相当影响程序执行效率的。
对此C++有一种解决的方式,即使用关键字inline来声明函数。编译器将不会生成真正的函数,而只是将这个内联函数的所有代码拷贝到调用函数中去,这样程序在执行调用该函数的时候就不需要来回跳转,自然就会提高了程序的运行效率。但是任何的事情都会有两面性,使用内联函数在提高效率的同时,也会付出一些代价,比如说程序调用了内联函数100次,那么就会将该内联函数中的代码复制100次,这样无形中就会增大程序的体积。当然我们也有种折中的选择,假如内联函数的体积很小,因此即使我们复制很多次也不会增加太大的代码体积,因此在这种情况下,我们使用内联函数还是相当的划算的。
因此:当函数提交较小,但是又频繁调用的情况下,建议我们使用内联函数,反之则不建议使用内联函数。
THE END!
2012年12月13日