inline函数
为什么要使用inline函数?
对于频繁被调用的小函数来说,每次调用都要保存当前寄存器,传递参数,以及结果后恢复之前的状态需要一定的开销。如果将其声明为inline,则在调用处会直接对其展开,由于函数较小,所以并不会对生成的二进制文件太大。
将函数返回类型加上关键字inline就将函数指定为inline函数了,但是这只是对编译器的一个建议,编译器可以不接受这个建议,一般来说,内联机制只适用于优化小的、只有几行的而且经常被调用的函数。大多数编译器都不支持递归函数的内联。
内联函数应该在头文件中定义,这一点与其它函数不同。
内联函数的定义对编译器而言必须是可见的,以便编译器能够在调用点内联地展开该函数的代码,所以,仅有函数原型是不够的。调用函数在展开时必须要知道函数定义的情况下才能展开,仅仅只给调用者提供一个接口是不行的,所以选择将定义也放在头文件中。