创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
c语言内容💖:
专栏:c语言之路重点知识整合
【c语言】全部知识点总结
目录
- 一、inline内联函数的定义
- 二、内联函数与宏替换比较
- 三、内联函数的适用情景
一、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
关键字只是建议编译器将函数作为内联函数处理,编译器可能会将不适宜的内联函数取消内联,此时内联函数被编译器认为是普通的函数。
- 不适用代码逻辑复杂的情况:
如果内联函数的代码体判断循环较多,逻辑复杂,此时执行此内联函数将会比调用普通函数开销更大。
大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。 |
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●) |