内联函数

内联函数 声明: inline

const string &shorterString(const string &s1,const string &s2)
{
return s1.size() < s2.size ? s1 :s2;
}


把这样一个小操作定义成函数

好处:

阅读理解程序更容易;

方便修改;

确保程序统一的行为 ,保证每个测试都以相同的方式执行;

函数可以重用,不必重写代码。

坏处:

调用函数比直接执行表达式要慢得多。

调用函数要先保存寄存器,并在返回时恢复;复制实参;程序要转向一个新的位置执行,程序开销大。


为解决上述问题,提出了内联函数,在函数调用处 内联的展开。

inline const string &shorterString(const string &s1,const string &s2)
{
return s1.size() < s2.size ? s1 :s2;
}

在函数调用时  

cout<< shortString(s1,s2)<<endl;


将展开为

cout<<(s1.size <s2.size ? s1 : s2)<<endl;


从而消除了调用函数的额外开销。

内联函数要在头文件中声明,要对编译器是可见的。

内联函数只适用于短小的,经常被调用的函数,大的复杂的函数不适合。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值