inline函数

为什么要使用inline函数?

对于频繁被调用的小函数来说,每次调用都要保存当前寄存器,传递参数,以及结果后恢复之前的状态需要一定的开销。如果将其声明为inline,则在调用处会直接对其展开,由于函数较小,所以并不会对生成的二进制文件太大。

 

将函数返回类型加上关键字inline就将函数指定为inline函数了,但是这只是对编译器的一个建议,编译器可以不接受这个建议,一般来说,内联机制只适用于优化小的、只有几行的而且经常被调用的函数。大多数编译器都不支持递归函数的内联。

 

内联函数应该在头文件中定义,这一点与其它函数不同。

内联函数的定义对编译器而言必须是可见的,以便编译器能够在调用点内联地展开该函数的代码,所以,仅有函数原型是不够的。调用函数在展开时必须要知道函数定义的情况下才能展开,仅仅只给调用者提供一个接口是不行的,所以选择将定义也放在头文件中。

 

posted @ 2015-12-20 12:40  xey_csu  阅读(612)  评论(0编辑  收藏  举报