inline函数返回值_C++ inline关键字详解

本文详细介绍了C++中的inline函数,旨在减少函数调用开销,提高程序执行效率。虽然inline函数避免了函数调用的额外过程,但可能会增加目标码大小,甚至在某些情况下被编译器忽略。内联函数适用于小且频繁调用的函数,但过度使用可能导致代码膨胀、编译时间增加以及可能的性能问题。理解何时适当使用inline函数对于优化C++程序至关重要。
摘要由CSDN通过智能技术生成

87e1b1bf3349292d40dd1140c584892e.png

当程序执行函数调用指令时,CPU将存储该函数调用后指令的内存地址,将函数的参数复制到堆栈上,最后将控制权转移到指定的函数。然后,CPU执行函数代码,将函数返回值存储在预定义的内存位置/寄存器中,并将控制权返回给调用函数。如果函数的执行时间少于从调用者函数到被调用函数(被调用者)的切换时间,则这可能会成为开销。对于大型函数和/或执行复杂任务的函数,与函数运行所花费的时间相比,函数调用的开销通常微不足道。但是,对于小型的常用功能,进行函数调用所需的时间通常比实际执行函数代码所需的时间多得多。对于小功能,由于小功能的执行时间少于切换时间,因此会产生开销。

C++提供了inline函数,以减少函数调用的开销。内联函数是在调用时在行中扩展的函数。调用内联函数时,将在内联函数调用时插入或替换内联函数的整个代码。替换由C++编译器在编译时执行。如果内联函数很小,则可以提高效率。

inline函数看起来像函数,动作像函数,但是又比宏方便很多,调用inline函数省去了参数压栈、生成汇编语言的 CALL调用、返回参数、执行return等过程所花费的额外开销。不过inline函数也有缺点:增加目标码的大小。因为inline函数的设计思想是对该函数的所有调用都用函数本身替换掉,和宏定义一样,但是比宏定义用起来要简单很多。而且inline的调试同样很难。

所以,inl

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值