内联函数是c++为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式。要了解内联函数与常规函数之间的区别,必须深入到程序内部。

  •    编译过程的最终产品是可执行程序:由一组计算器语言指令组成
  •    运行程序时,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定的内存地址
  •    常规函数调用使得程序跳到另一个地址(函数的地址),并在函数结束的时候返回
  •    执行函到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到比偶埃及函数起点的内存单元,执行函数代码,然后跳回到地址被保存的指令出。来回跳跃并记录跳转位置意味着使用函数时需要一定的开销。

   c++内联函数提供了另一种选择。内联函数编译代码与其他程序代码“内联”起来,也就是说,编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,在跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多内存。(如果程序在23个不同的地方调用同一个内联函数,则改程序将包含该函数代码的23个副本)

 

内联函数

声明方法:

  • 在函数声明前加上关键字inline;
  • 在函数定义前加上关键字inline.

注意事项:

       程序员请求将函数作为内联函数时,编译器并不一定会满足这种要求。他可能认为该函数过大或者注意到函数调用了自己(内联函数不能递归),因此不将其作为内联函数;有些编译器没有启用或实现这种特性。

 

 

 

 

 

 

 

相关文章: