C++中的内联函数

2019-01-19  本文已影响0人  飘曳的舟

为了解决一些频繁调用的小函数大量消耗栈空间的问题,引入inline关键字 表示为内联函数

栈空间主要存放的是函数体内的局部变量


image.png

上图中,使用内联函数,就可以将dbtest(i) 直接替换为函数内部的代码,避免反复调用

内联函数必须是简单的函数,不能包含循环 switch 不能包含递归

声明内联只是一个建议,真正是否内联还是看编译器。
建议最好将内联函数放在头文件中

定义在类内的成员函数缺省的具备inline的属性,定义在类外的话需要显性的注明是inline的才可以使用内联函数

内联函数主要是用来修饰实现的,而不是声明部分。

内联不能滥用,有两种情况不适合使用内联函数:

  1. 函数过长,使用内联函数会造成代码变长,消耗更多内存。
  2. 函数体包含循环,使得执行函数的时间远高于调用函数的时间。

一句话:如果内联函数不能够增强性能,则不要使用它

上一篇 下一篇

猜你喜欢

热点阅读