C++面试题-静态变量

2011-04-18 12:36:36 · 作者: · 浏览: 707

下面代码有什么问题

#define MAX_SRM 256

DSN get_SRM_no() 

  static int SRM_no; //是不是这里没赋初值?
  int I; 
  for(I=0;I<MAX_SRM;I++,SRM_no++) 
  { 
    SRM_no %= MAX_SRM; 
    if(MY_SRM.state==IDLE) 
    { 
      break; 
    } 
  } 
  if(I>=MAX_SRM) 
    return (NULL_SRM); 
  else 
    return SRM_no; 
}

系统会初始化static int变量为0,但该值会一直保存,所谓的不可重入...