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

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,797评论 8 265
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,961评论 1 45
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,298评论 30 472
  • 愿有一天,这星球上所有为爱而生的伤痕,皆被治愈。 “你是选择一个爱你但没钱的穷光蛋,还是选择一个不爱你但有钱的王八...
    白格姨妈阅读 3,051评论 3 2