C++内联函数
内联函数是C++为提高程序运行速度所做的一项改进,常规函数与内联函数之间的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序当中。要了解内联函数与常规函数之间的区别。必须深入到程序内部。
编译的最终产品是可执行程序----由一组机器语言指令组成。运行程序时,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定过的内存地址。计算机随后将逐步的执行这些指令。有时(如果有循环或者分支语句时),将跳过一些指令,向前或向后跳到指定的地址。常规函数调用也使程序跳到另一个地址(函数地址),并在函数结束时返回。
下面更详细的介绍这一过程的典型实现。执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保存的内存块),跳到标记函数起点的内存单元,执行函数代码(也许还需要将返回值放入寄存器中),然后跳回到地址被保存的指令处(这与我们看书的时候,看着看着想看一下目录,然后看完目录再跳回刚才我们看的地方继续看有点类似)。来回跳跃并记录跳跃位置意味着会带来一定的开销。