简介:  
   内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。 
  
 
   
                      内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。 
  
 
   
                     内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。 
  
 
   
     一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。(一般来说,内联说明只是向编译器发出的一个请求,编译器可以忽略这个请求。) 
  
 
   
   优点:1、提高运行效率(不需要函数调用的开销,如:入栈出栈等) 
  
 
   
                2、 
   使用与规模小,流程直接,频繁调用的函数 
  
 
   
   缺点: 
  
 
   
                 1、增加空间的开销(在调用出直接嵌入函数体) 
  
 
   
   注意: 
  
 
   
               1、很多编译器都不支持内联递归函数,而且一个75行的函数也不大可能在调用点内联地展开。 
  
 
   
               2、内联函数声明与定义必须放在同一文件里,并且是放在.h头文件。需要对编译器可见。 
  
 
   
               3、对于C++而言,在类内定义的函数是隐式的inline 函数。 
  
 
   
               4、虽然无需在声明和定义的地方同时说明inline,但这么做是合法的。同时说明inline,这样使类更容易理解 
  
 
   
   PS:1 定义在类内部的函数隐式的位内联(inline)函数 
  
 
   
   sample.h 
  
 
   class sample{public:char get() const { return content[cursor];}                      //(定义)隐式内联inline char get (pos ht,pos wd) const;                             //显式内联
} 
   
   PS:2 类内声明,类外定义
  
  
 
   
   sample1.h 
  
 
   class sample1{public:inline char get (pos ht,pos wd) const;                             //显式内联
}
inline char sample1::get (pos ht,pos wd) const //类外定义
{return contents[ht+wd];
}