内联函数适用能够快速执行的函数,此时使用内联省去了函数的调用开销。内联函数像宏一样都是在编译期展开,内嵌到调用处。
inline省去普通函数的压栈和call,以空间换时间,仅仅省去了函数调用的开销
当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.
一个较为合理的经验准则是, 不要内联超过 10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用!
不足:
1、增加编译时间
2、增加软件大小,对于嵌入式等空间紧张情况下应减少使用
3、导致指令缓存不够用,会频繁的发生L1S miss,访问L2、L3甚至是主存。而且,代码段一大,很容易造成STLB的miss,被迫访问主存