c++内联函数

来源:互联网 发布:淘宝网商城男裤 编辑:程序博客网 时间:2024/06/16 09:22

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

学过编译原理的应该知道,程序调用函数必须跳转到函数的地址执行函数,执行完毕后返回到调用函数的地方,所以每次执行常规函数都需要进行跳转.执行到函数调用指令时,程序将在函数调用后立即储存该指令的内存地址,并将函数参数复制到堆栈中,执行完毕再跳转回去,来回跳跃并记录跳跃地址需要一定的开销.

内联函数的优点就是,执行内联函数和常规函数不同的是,内联函数将直接执行函数,不需要进行跳转.因此内联函数的速度比常规函数要快,但代价是内联函数需要花费更多的内存,因为每执行一次就相当于执行了函数代码的副本.

如果执行函数代码的时间比处理函数调用时间长的话,节省时间较少.如果代码执行时间很短的话,内联函数的调用可以节省很多时间.

执行代码的时间我的理解就是运行这个函数所需要的时间,处理函数调用的时间我觉得就是在执行代码时候所需要做的各种跳转时间,细想一下.内联函数就是节省处理函数调用时间的,所以如果处理函数调用时间比较长,执行代码时间比较短的话,可以优先考虑使用c++内联函数


参考:C++ Primer Plus(第六版)

0 0