【C/C++】inline内联函数详解

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述

c语言内容💖:

专栏:c语言之路重点知识整合

【c语言】全部知识点总结


一、inline内联函数的定义

内联函数在C++中是一种特殊的函数,内联函数的代码在编译时会在调用的位置展开,而不是在运行时调用函数。

这样做可以消除函数调用的开销,从而提高程序的执行效率。

相当于define宏替换

内联函数可以分为:

  • 隐式内联函数:类内的函数(虚函数除外)都为隐式内联函数
  • 显式内联函数:在类外使用inline关键字修饰的函数

把函数体也写在类内就是内联函数,只声明不是

#include <iostream>

class Test
{
public:
	void fun() 
	{ 
		std::cout << "隐式内联函数 Test::fun()" << std::endl; 
	};
	void fun2();
};

inline void Test::fun2()
{ 
	std::cout << "显式内联函数 inline void Test::fun2() " << std::endl; 
};

int main()
{
	Test t;
	
	t.fun();
	t.fun2();
	return 0;
}

二、内联函数与宏替换比较

内联函数相比于宏替换的优点:

  • 内联函数带有安全检查,宏替换没有
  • 内联函数在书写时更具有可读性
  • 宏替换在预处理期进行代码替换,内联函数在编译期扩展

内联函数相比于普通函数:减少函数调用时的开销,提高程序的执行效率。

三、内联函数的适用情景

  • 内联函数适用于代码较少,调用频繁的情况:

由于内联函数以代码膨胀为代价,每个调用内联函数的地方都会插入一份函数的代码,内联函数可以看作是使用空间换时间来提升运行速度

并且使用inline关键字只是建议编译器将函数作为内联函数处理,编译器可能会将不适宜的内联函数取消内联,此时内联函数被编译器认为是普通的函数。

  • 不适用代码逻辑复杂的情况:

如果内联函数的代码体判断循环较多,逻辑复杂,此时执行此内联函数将会比调用普通函数开销更大。


在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天喜Studio

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

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

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

打赏作者

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

抵扣说明:

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

余额充值