HF_Cherish

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1. 内联函数具备一般函数的性质,但是不需要调用,而是在编译阶段,会用函数体替换函数名被调用的地方。可以节省调用时间(进出栈、保存上下文)。
  2. 在编译层面和宏的作用相同。内联函数的展开在编译阶段,宏展开在预处理阶段,一般函数执行时调用转移。
  3. 内联函数可以替代宏,弥补宏的一些缺陷。例如宏不能访问类内部的变量,宏定义时参数如果是计算式常出问题。
  4. 内敛函数使用的要求:
    1. 递归函数不能用作内联函数
    2. 内联函数一般不适合用于包含while等复杂结构的语句,一般都是1~5句简单句
    3. 先定义后使用
    4. 定义时必须连同函数体一起声明
  5.  1 //inline example
     2 
     3 int main(){
     4      void print(int x){
     5             printf("%d ",x);
     6       }
     7     for( int i=0; i<100; i++ )
     8         print(i);
     9     return 0;
    10 }
    11 
    12 // another example
    13 inline void print( int x ){
    14     printf("%d",x);
    15 }
    16 
    17 int main(){
    18     for( int i=0; i<100; i++ )
    19         print(i);
    20     return 0;
    21 }
    22 
    23 //macro example
    24 #define ZERO_MAX(x) ( ( (x) > 0 ) ? (x) : 0 );

     

posted on 2015-04-27 15:10  HF_Cherish  阅读(317)  评论(0编辑  收藏  举报