美文网首页
【基本知识】C++中的inline函数

【基本知识】C++中的inline函数

作者: 杨格格杨 | 来源:发表于2018-07-09 15:28 被阅读0次

C++中的inline函数,是一个内联函数,这篇文章从以下几个角度来说明这个函数。本文中所使用的解释,适合有一定C语言基础的读者阅读理解。

第一,什么是内联函数?

答:和C语言进行一个联想比较,在C语言中,有宏定义函数的使用,那么在C++中,就是一样的使用内联函数(也就是名字换了一个说法),这样的函数就是内联函数。

第二,内联函数有什么作用?

答:这是C++语言中用来降低程序的运行时间,整个过程即,内联函数收到编译器的指示,发生内联;编译器使用函数的定义来代替函数调用语句,代替发生在编译阶段,而不是程序运行阶段。因此,可以得到,就是内联函数是一个中间的使用过程降低运行时间,不是直接降低时间。

第三,降低运行时间,有时候也不一定需要,什么时候一定要用呢?

答:功能专一的函数,他们本身的函数体不大,但是在一个程序中,他这个函数被不断的调用,那可想而知,调用的时间浪费很多,这里有必要说明下,为什么调用时间会需要很多。因为,遇到调用函数,程序会保存当下的执行结果,将函数中的局部变量和函数地址压入堆栈,再将即将调用的新函数加载到内存中,那么就会反复地复制和跳转,执行代码,存储返回值。可以想象,这就是一个很费时间的过程了,不满足我们写程序时要求的精简。因此,在这时C++就是用内联函数,来调用函数本身来代替调用的语句,编译替换后的代码,编译器就不需要去跳转到其他内存地址去执行函数的使用,也就不需要保存现场的数据。

第四,说了这么多了,那怎么用?

答:定义函数时,在函数的最前面用关键字“inline”声明函数。如:

Class A

{

Public:

    inline intadd(inta,int b)

    {

      return(a +b);    };}

是不是很简单的一个操作。上面这个例子,还有一点要注意,即,在类内部定义的函数,会默认为内联函数,这就有利于类函数细节隐藏。

总结:

1.inline函数是一个在实际中用到很多次调用函数时,很好的办法来增强执行性能之时间问题。

2.这个功能在编译阶段,对象是编译器。

3.所有中类定义函数都默认为内联函数,不用很声明的。

4.虚函数不能内联。

5.不是定义在头文件中的都是内联函数,还需要一步定义!区别源文件和头文件。一般头文件中一般定义内联函数更合适一点。源文件中要定义,需要使得每一个内联函数的实现也相同,不然就只能对应的源文件使用它。

OK,到此为止,你对于内联函数就差实践应用理解了,hhhh。

相关文章

  • 【基本知识】C++中的inline函数

    C++中的inline函数,是一个内联函数,这篇文章从以下几个角度来说明这个函数。本文中所使用的解释,适合有一定C...

  • NDK开发---C++学习(三):类与函数(上)

    前言 前面简单介绍了C++中的基本知识和引用,本篇博客将介绍C++中的类与函数,分别是成员函数、无参构造函数、有参...

  • 第一周(Geek Band)

    C++实现数据和函数的封装 C++面向对象(ObjectOriented) 基本格式 Inline内联函数关键字 ...

  • 高质量C++编程指南 ----C++函数的高级特性

    8. C++函数的高级特性 对比于C 语言的函数,C++增加了重载(overloaded)、内联(inline)、...

  • 什么时候不能使用虚函数

    类属static函数,构造函数s,inline函数(请参考《effective c++》p.136),模板成员函数...

  • c++内联函数inline

    inline概念 在c++中,函数调用是会产生额外的时间开销的,如果函数本身代码很短,执行很快,并且该函数被反复调...

  • C++中的内联函数(inline)

    一、概述 在函数头部加上修饰符 “inline”,则表示此函数为内联函数。此类函数一般在头文件定义实现。 二、作用...

  • Kotlin内联函数使用

    inline 本质 Kotlin中的内联函数使用inline关键字修饰,形如: 编译时,inline会将内联函数中...

  • C++基础

    C++ readme 避免头文件重复定义, extern C的用法: 内联函数: inline function ...

  • 关于内联函数

    内联函数 又被称为在线函数或编译时期展开函数,是指在用inline修饰的函数(这里指的是C++或者C语言的函数)。...

网友评论

      本文标题:【基本知识】C++中的inline函数

      本文链接:https://www.haomeiwen.com/subject/rdftpftx.html