菜鸟笔记
提升您的技术认知

c inline关键字-ag真人游戏

c的延续

c 是一门承上启下的编程语言,没有写class他就是c语言,这也导致了很多编译器既支持c 也支持c。inline关键字其实更多地出现在c语言当中,因为很多短小的工作函数可以达到快速执行的效果。
将函数声明为inline实际上表示编译器会将inline函数粘贴到调用点处,省去了原本函数查找、调用的时间

inline使用原则

要定义一个函数为inline函数,需要满足以下原则:
1)不可包含复杂的结构控制语句,包括循环控制和复杂的条件控制,例如while, switch。
2)不可包含递归函数
inline函数使用无非是平衡“ 函数调用开销 vs 函数执行开销”,所以一个简小的函数要重复调用时,inline函数有一定优势。例如下面的call( )函数。

#include 
using namespace std;
inline int call( ){
    static int ctr =1;
    return ctr  ;    
}
int main(){
    for(int i=0; i<500; i  )
        cout<

执行过程中将call( )函数粘贴到int main()函数中的调用点“ cout< 很多人可能有疑问,在pc上没有感觉明显速度优势。但是在很多处理器功能很弱的8位、16位的嵌入式系统中,inline函数可以节约非常客观的时间消耗。

inline函数定义在头文件

这不是绝对的,如果很多.cpp都需要这个inline函数,那么理应定义在.h中,方便函数引用、拓展。试想,你也不情愿每个函数文件中都用外部函数调用来解决
extern inline int call( );
不同的是,.h中的普通函数只要函数声明即可。对应到java,可以理解为java中的抽象方法。如声明头文件test.h:

#ifndef test_h_
#define test_h_
bool sort_elem(int &elem);
inline int call( ){
    static int ctr =1;
    return ctr  ;    
}
#endif /* test_h_ */
 inline函数不仅仅要声明,还需要定义。这样才容易被多个文件存取。
网站地图