内联函数

简介: C++提供了inline关键字让我们可以在函数调用点直接把函数的代码进行展开处理。

1.什么是内联函数

(1)类内定义的函数

(2)类外定义且被inline修饰过的函数

注:此时也不一定内联,只是建议编译器处理成内联。


2.内联函数与普通函数的区别?

inline内联函数:在编译过程中,没有函数调用开销,在函数的调用点直接把函数的代码进行展开处理,并且不再生成相应的函数符号

inline只是建议编译期将其处理成内联函数,并不是所有的inline都会被编译期处理成内联函数。在debug版本上,inline是不起作用的;inline只有在release版本下才能出现。

可以打开虚拟机:g++ -c main.cpp -O2    objdump -t main.o去看一下就不会生成调用函数的指令。



3.一段代码演示内联函数的使用。

#include <iostream>usingnamespacestd;
classA{
public:
voidshow() // 相当于inline void show()    {
cout<<"A::show()"<<endl;
    }
};
inlinevoidshow()
{
}
intmain()
{
return0;
}
相关文章
|
2月前
|
C语言 C++
C++(三)内联函数
本文介绍了C++中的内联函数概念及其与宏函数的区别。通过对比宏函数和普通函数,展示了内联函数在提高程序执行效率方面的优势。同时,详细解释了如何在C++中声明内联函数以及其适用场景,并给出了示例代码。内联函数能够减少函数调用开销,但在使用时需谨慎评估其对代码体积的影响。
|
6月前
|
编译器 C++
内联函数
内联函数
36 1
|
5月前
|
编译器 C++ 开发者
什么是内联函数?
综上所述,内联函数在C++中是一种重要的优化手段,特别是在类定义中,通过内联简单的成员函数,可以提高程序的执行效率、代码的可读性和维护性,同时为编译器提供更多的优化机会。然而,需要注意的是,并不是所有函数都适合内联,具体情况需要根据函数的复杂度和实际需求进行权衡。
35 0
|
6月前
|
缓存 安全 编译器
你了解内联函数吗?
你了解内联函数吗?
|
6月前
|
编译器 C语言 C++
【C++】内联函数
【C++】内联函数
46 1
|
6月前
|
安全 编译器 C++
【c++】内联函数
【c++】内联函数
【c++】内联函数
|
11月前
|
编译器 C++
C++内联函数
C++内联函数
39 0
|
编译器 C++ 开发者
C++ 内联函数
C++ 内联函数
51 0
|
安全 编译器 C语言
C++之内联函数
C++之内联函数
67 0
|
编译器 C++
【C++的内联函数】
一、什么是内联函数 用关键字inline修饰的函数叫做内联函数。 C++编译器编译时会自动在被调用的地方展开。 二、内联函数的优缺点 内联函数的优点: 没有函数栈帧创建,提升程序运行效率。简单,不易出错,可读性强,可被调试。 内联函数集合了宏函数的优点,摒弃了宏的缺点, 宏的缺点:复杂,容易出错,可读性差。 内联函数的缺点: 如果一个函数的代码量过大,并且频繁被调用,那么在调用的地方展开会极大增加代码量,且代码重复。