inline用法

根据实参如何替换inline

inline int min(int i,int j)

{

return i>j?j:i;

}

int i,j;

int mvalue = min(i,j) 替换之后  mvalue = i>j?j:i;

int mvalue= min(3,5) 替换之后 mvalue = 3;计算表达式再替换

int mvalue=min(foo(),bar()+1)

替换之后   int t1,int t2 ;//防止多次调用函数foo(),bar()

              mvalue= (t1=foo()),(t2=bar()+1,t1>t2?t2:t1;

 

2 当inline中含有局部变量时候

inline int min(int i,int j)

{

     int minValue=i>j?j:i;

     return minValue;

}

{

     int minValue

    minValue = min(v1,v2);

}

inline替换之后

{

     int minValue

     int  _min_lv_minval;

    minValue = (_min_lv_minval=v1>v2?v2:v1),_min_lv_minval;

}

在某单一表达式中inline函数调用多次,局部变量也会被重命名多次,生成多个局部变量。

minValue=min(v1,v2)+min(f00(),foo()+1);

会生成四个临时局部变量

int _min_lv_minval_00;

int _min_lv_minval_01;

int t1;

int t2;

posted on 2011-10-05 14:43  chegvra  阅读(310)  评论(0编辑  收藏  举报