C++:内联函数

混淆1:把内联函数和内部类弄混了

混淆2:类的声明和实现没有分离的,难道都是内联函数吗?


内联函数避免的是调用函数的开销,实际上编译器是把它那段代码复制过来的,参考《c++程序设计》5.16

除了免除调用之外呢,还可以利用编译器的最优化机制(这个机制不能优化调用函数的代码),

但是内联函数会造成目标代码变大也就是说要占用较大的内存。因此如果一个函数比较小比较简单用内敛函数很划算,

因为调用这个函数的开销可能会比这个函数体产生体积还要大。


而且即使声明了一个函数确实是内联函数,但是在真正的执行过程中他是否被内联也是不一定的,取决我们调用的方式,直接调用没问题,用函数指针调用就无法内联。


如果一个函数是在类的声明中实现的,那么它就自动地成为一个内联函数。在下面的类A的声明中,构造函数和f1都自动的成为内联函数,而f2是一个普通函数。

class A
{ 
   public:
              A()
{ 
    //do something;
}
   double f1()
{
        //returns a number;
}

  double f2();
};

或者 在类的实现中用inline关键字标明这个函数是内联函数。如:

inline double A::f2()
{
    //return a number;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值