在C++中,为解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别引入了inline修饰符,表示为内联函数。
栈空间就是指放置程序的局部数据(也就是函数内部数据)的内存空间。
在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。
inline的使用是有限制的,inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句如while、switch,并且不能内联函数本身不能是直接递归函数。
inline只是一个对编译器的建议。
定义在类中的成员函数缺省都是内联的,如果在类定义时就在类内给出函数定义,那当然最好。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上inline,否则就认为不是内联的。