c++基础 inline关键字

内联函数(inline)

调用普通函数,每个普通函数语句都需要发生跳转操作。这种跳转操作会带来时间开销!

程序执行流程

从main入口进入,执行到函数时,会跳转对应函数,然后跳转回main函数后,每一次调用会发生两次函数跳转。

inline(内联函数关键字)

inline foo() {
  
}

内敛函数就是用函数已经编译好的二进制指令集,替换对该函数的调用指令。

优点

减少函数调用开销:对于频繁调用的小函数,使用 inline 可以避免函数调用的栈操作开销,从而提高性能。

缺点
  • 代码重复:inline 函数的定义会被复制到每个调用处(如果编译器接受),因此可能会增加生成的目标代码大小

  • 过度使用问题:滥用 inline 可能导致目标代码体积增大,反而降低缓存命中率和性能。

  • 调试困难:内联函数可能使调试变得更加困难,因为函数调用堆栈可能不明显。

使用场景
  • 小型、简单且频繁调用的函数。

  • 不适用于大型或复杂函数,因为可能导致代码膨胀。

  • 递归函数不适合内联。

注意事项
  • inline关键字仅表示期望该函数被优化为内联函数,但是否适合内联规则则完全由编译器决定。

  • 过度使用问题:滥用 inline 可能导致目标代码体积增大,反而降低缓存命中率和性能。

  • 调试困难:内联函数可能使调试变得更加困难,因为函数调用堆栈可能不明显。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值