inline 函数的使用

  在C++中,inline函数,即内联函数,是在函数实现的返回值前面加入关键字inline。

  下面集中情况下,函数Foo为内联函数:

    (1)inline void Foo(int x);         // inline 与函数声明和函数实现放在一起

        inline void Foo(int x){}

    (2)void Foo(int x);           // inline 仅与函数实现放在一起

        inline void Foo(int x){}

    (3)定义在类声明之中的成员函数将自动地成为内联函数

        class A

        {

            public:

            void Foo(int x) {}     // 自动地成为内联函数

        }

  注意,inline关键字仅与函数声明放在一起是不能成为内联函数的。一般推荐第二种写法,因为这体现了高质量C++/C 程序设计风格的一个基本原则:声明与定义不可混为一谈,用户没有必要、也不应该知道函数是否需要内联。

  那为什么要使用内联函数呢?

  内联能提高函数的执行效率。内联函数在编译阶段,编译器会将内联是以代码膨胀(复制)为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。如果执行函数体内代码的时间,相比于函数调用的开销较大,那么效率的收获会很少。另一方面,每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。

 

 

 

posted @ 2014-03-03 17:19  tjuzjf  阅读(662)  评论(0编辑  收藏  举报