c++不常用功能之——内联函数

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 15:14   11   0

理解:

一、定义

百度百科:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。

二、为什么需要这个功能,没有这个功能怎么办

百度百科:内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。

编译器可以决定哪些函数内联 。 程序员很少或没有控制哪些只能是内联的,哪些不是。 给这种控制程度,作用是程序员可以选择内联的特定应用 。

三、该功能的具体应用

C++有三种方式实现内联函数:

1. 将函数的定义写在类定义的内部;

2. 在类定义内部的函数声明上用inline显式指定;

3. 在类定义体外部的函数实现上用inline显式指定;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
using namespace std;
class Sample
{
public:
void inline01(){cout<<"haha 01" << endl;}
inline void inline02() const;
};
void Sample::inline02() const
{
cout << "haha 02" << endl;
}
inline void inline03()
{
cout << "haha 03" << endl;
}
int main(int argc, char* argv[]){
Sample s;
s.inline01();
s.inline02();
inline03();
return 0;
}

参考文献:

http://www.jb51.net/article/48622.htm

http://www.cnblogs.com/whyandinside/archive/2012/09/23/2698952.html


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP