1.inline可以免除函数调用时的保存上下文时的一些开销,其本质就是对此函数的每一个调用都以函数本体替换之。
inline的坏处:若在一台内存有限的机器上,过度热衷inlining会造成程序体积太大,即使拥有虚拟内存,inline造成的代码膨胀也会导致额外的换页行为,降低指令高速缓存装置的集中率,以及伴随这些而来的效率。
但是好处是,如果inline函数的本体很小,编译器针对函数本体所产出的码可能比函数调用所需要的开销等所产出的码更小。那么inlining函数可以导致较小的目标码和较高的指令告诉缓存装置击中率。
inline只是对编译器的一个申请,不是强制命令。这项申请可以隐喻提出,也可以明确提出。
隐喻方式
- class person{
- public:
- int age() const {return theAge;}
- private:
- int theAge;
- }<br><br>
复制代码 这样的函数通常是成员函数。
明确方式
[code]templateinline const T& std::max(const T& a, const T& b){ return a |