C++内联函数(inline)

内联函数是C++中用于优化程序性能的手段,它避免了函数调用时的开销。内联函数通过将函数体插入到每个调用点来减少跳转时间,但可能会增加内存占用。内联不能用于递归函数,并且有些编译器会自行决定是否内联。预处理宏#define是内联函数的原始形式,但宏不具备类型检查。了解何时使用内联函数对于编写高效代码至关重要。
摘要由CSDN通过智能技术生成

什么是内联函数

内联函数是提高程序运行速度的一种改进。

常规函数和内联函数的区别不在于编写方式,而是在于编译器如何将函数代码组合到程序中。

函数名其实是地址,程序在执行的过程中,当遇到函数名,就要跳转至函数名指定的地址处执行函数中的代码块,函数执行完毕后再跳转回来,来回跳转必定要有一定的开销。

内联函数则对此进行了改进,经过inline声明的内联函数的函数体代码,直接与程序代码内联。因此,当程序执行至内联函数时,不必再来回跳转,这就节省了一定的时间开销

但遗憾的是内联函数要占用更多的内存,如果程序在多个地方调用同一个内联函数,则这个内联函数要被复制多份。

使用内联函数

使用内联函数必须采取下述措施之一:

  • 在函数声明前加上关键字 inline
  • 在函数定义前加上关键字 inline

有的编译器会自己判断是否可以为内联函数。
内联函数不能递归

内联函数与宏定义

inline是c++新增的特性,预处理#define是内联代码的原始实现,并且宏不能按值传递。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子砰砰枪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值