[关闭]
@zzzc18 2019-12-18T19:58:57.000000Z 字数 501 阅读 779

奇怪问题

C++


  1. TokenConst Token::readToken() {
  2. static string now = *I;
  3. if (now[0] == '{') return BEGIN_OBJECT;
  4. if (now[0] == '}') return END_OBJECT;
  5. if (now[0] == '[') return BEGIN_ARRAY;
  6. if (now[0] == ']') return END_ARRAY;
  7. if (now[0] == ':') return COLON;
  8. if (now[0] == ',') return COMMA;
  9. if (now[0] == '\"') return STRING;
  10. if (now[0] == 'n') return _NULL;
  11. if (now[0] == 't' || now[0] == 'f') return BOOLEAN;
  12. return NUMBER;
  13. }

遇到了有意思的问题
其中有:

  1. vector<string>::iterator I;

代码第二行,这样做在访问now的时候似乎会对 造成一定的影响,导致 不起作用,超级神奇。

盲猜编译器为了提高效率而没有拷贝全部内容,但这样导致了以外的bug

好的,我自己zz
那样写相当于初始化,就执行一次,能对才鬼了。。。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注