日期:2014-05-16  浏览次数:20614 次

这种写法有何用意?
static int ready = 0;  
if (0 != ready) 
  return -1;
先赋为0,而后又判断如果不为0,这有什么必要呢?

------解决方案--------------------
可能在同一个程序块当中有另一个线程使用该变量。
------解决方案--------------------
int func() {
static int ready = 0;
if (0 != ready) 
return -1;
ready = 1;
}

这样,两次运行func的结果是不同的。