概念:
以 inline 修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方将函数在这展开,没有函数调用建立栈帧的开销,内联函数可以提升程序运行的效率
特性:
- 是一种以空间换时间的做法,缺陷:可能会使目标文件变大,优势:减少了函数调用的开销
- 作用和宏很像,将内联函数直接在调用的地方直接展开(代码直接替换过去)
- 这是一种建议性的优化,只在 release 下会呈现出来,且实际接不接受看编译器的实现机制,一般只会采纳函数规模较小的内联函数,我们一般也只在不是递归、且频繁调用的函数上用 inline 修饰
- inline 声明和定义不能分开,会导致连接错误,因为 inline 被展开,就没有函数地址了,链接就会找不到