自学内容网 自学内容网

【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关键字只是建议编译器将函数作为内联函数处理,编译器可能会将不适宜的内联函数取消内联,此时内联函数被编译器认为是普通的函数。

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

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


在这里插入图片描述

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

原文地址:https://blog.csdn.net/TiSg0/article/details/136358698

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!