什么是内联函数
内联函数是提高程序运行速度的一种改进。
常规函数和内联函数的区别不在于编写方式,而是在于编译器如何将函数代码组合到程序中。
函数名其实是地址,程序在执行的过程中,当遇到函数名,就要跳转至函数名指定的地址处执行函数中的代码块,函数执行完毕后再跳转回来,来回跳转必定要有一定的开销。
内联函数则对此进行了改进,经过inline声明的内联函数的函数体代码,直接与程序代码内联。因此,当程序执行至内联函数时,不必再来回跳转,这就节省了一定的时间开销。
但遗憾的是内联函数要占用更多的内存,如果程序在多个地方调用同一个内联函数,则这个内联函数要被复制多份。
使用内联函数
使用内联函数必须采取下述措施之一:
- 在函数声明前加上关键字 inline
- 在函数定义前加上关键字 inline
有的编译器会自己判断是否可以为内联函数。
内联函数不能递归。
内联函数与宏定义
inline是c++新增的特性,预处理#define是内联代码的原始实现,并且宏不能按值传递。