内联函数
为什么会有内联函数?
1.函数调用:需要实参、局部变量等数据入栈;
2.然后执行函数体的代码;
2.执行完数据出栈。
如果函数只有很少的语句,频繁调用的话,时间都浪费在入栈和出栈上。
因此,C++ 提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数。
从inline的原理可以看出,是用空间换取时间的做法,是以代码膨胀(复制)为代价的。
// 函数声明处inline不起作用,编译器会忽略声明处的inline关键字 //inline void func(); // 要实现内联函数,需要在函数定义处添加inline inline void func() { }
再次强调,一般只将那些短小的、频繁调用的函数声明为内联函数。