1.在C++中,为了解决频繁调用小函数大量消耗栈空间或栈内存的问题,引入inline内联函数。
栈空间是有限的,大量频繁使用会造成栈空间的不足。
2.inline修饰符,作用就是要求编译器,付出额外的空间来替换每一次的函数调用。
3.时间减了,空间增加了。
4.与宏的区别:宏是展开,效率也很高。但不能对参数有效进行检测。不能享用C++编译器检测
的好处。而内联函数就是真正的函数,能除去宏的缺点。保留优点。
5.提高了性能。破坏了代码结构化设计的思想。
6.以下风格。不能构成inline
inline void Foo( int x, int y ) //declare
void Foo( int x, int y)
{ ……}
以下风格是inline
void Foo( int x, int y )
inline void Foo( int x, int y)
{ ……}
7.C89不支持。C90以后支持
8.无法使用inline的情况:
A.递归,自己调用自己
B.复杂控制语句,循环和switch case
C.最好不要超过五行
![](https://img2024.cnblogs.com/blog/35695/202403/35695-20240328092537879-1189167464.jpg)