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

理解:

一、定义

百度百科:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章