c++ 学习笔记 ----内联函数(inline)

   在c++中调用函数时,电脑要做很多事:调用前要先保存寄存器,并在返回时恢复;而且还有实参到形参的传值;如果一个函数在源码中多次被调用,这样就会很浪费计算机的资源,但是如果我们将这个函数声明为内联函数,就可不必有这样的担心了。

例如这样一个函数:

 int max(int x,int y)

{

   return x>y?x:y

}

如果将其声明为内联,即inline int max(int x,int y),则调用

cout<<max(x,y)<<endl;

编译器在编译时将展开为

cout<<x>y?x:y<<endl;

从而避免了函数调用时函数实参与形参传递的麻烦!

     但一般来说,内联函数机制适用于优化小,只有几行代码而且经常被调用的函数。大多数的编译器都不支持递归函数的内联。一个2000行的函数也最好不要再调用点内联展开。

注意:

      内联函数应该在头文件中定义,这一点不同于其他函数。

类中的内联函数:

     类的内部的成员函数,默认是作为inline处理的,也就是当他们被调用时,编译器将试图在同一行展开该函数。

     显示的声明inline函数:

             可以在类的声明中定义inline;

             也可以在成员函数的定义中声明inline;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值