C++中的内联函数
优点:易读易维护
缺点:运行时开销大,对于普通函数
- 函数调用时:参数及部分CPU寄存器的寄存器内容进栈,控制流跳转
- 函数返回时:返回值及寄存器值出栈,控制流跳转
目的:减小性能开销
方法:代码插入到调用处
结果:导致程序变大
适用于短函数,不适于多处调用的长函数
"inline" 是对编译器的请求,而不是命令。编译器不一定会执行。
函数调用的开销:
- 对小的函数不可忽略
- 对重量级的函数是可以忽略的
大多数编译器并不把带有循环、 递归等或者代码比较多的函数进行内联编译