@[TOC]
什么是内联函数
- 使用inline修饰函数声明或实现都可以使其变为内联函数,但建议两个地方都加上inline关键字
内联函数的作用
- 编译器会将函数调用直接展开为函数体代码,相当于函数体里面的所有代码替换掉main函数的函数调用代码
- 使用内联函数后,编译出的代码体积会变大
- 有什么用呢,函数调用是会付出代价的,需要开辟栈空间
- 使用内联函数后就不存在函数调用了,就不存在开辟栈和回收栈
int max(int a, int b){ return a > b ? a : b; }
内联函数的适用场景
- 函数代码体积不大,尽量不要超过10行代码
- 频繁调用的函数
- inline只是建议编译器编译成内联函数,递归函数无法编译成内联函数,死循环递归无法被内联