C++内联函数
内联函数是C++为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中。
编译过程的最终产品是课执行程序——由一组机器语言指令组成。运行程序时,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),调到标记函数起点的内存单元,执行函数代码(也许还需将返回值放入到寄存器中),然后调到地址被保存的指令处。来回跳跃并记录跳跃地址意味着以前使用函数时,需要一定的开销。
C++内联函数提供了另一种选择。内联函数的编译代码与其他程序代码“内联”起来了。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联函数代码,程序无需调到另一个位置去执行代码,再跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多的内存。
要使用这项特性,必须采用下述措施之一:
1)在函数声明前加上关键字inline;
2)在函数定义前加上关键字inline
通常的做法是省略原型,将整个定义放在本应提供原型的地方。