@zzzc18
2019-12-18T19:58:57.000000Z
字数 501
阅读 800
C++
TokenConst Token::readToken() {
static string now = *I;
if (now[0] == '{') return BEGIN_OBJECT;
if (now[0] == '}') return END_OBJECT;
if (now[0] == '[') return BEGIN_ARRAY;
if (now[0] == ']') return END_ARRAY;
if (now[0] == ':') return COLON;
if (now[0] == ',') return COMMA;
if (now[0] == '\"') return STRING;
if (now[0] == 'n') return _NULL;
if (now[0] == 't' || now[0] == 'f') return BOOLEAN;
return NUMBER;
}
遇到了有意思的问题
其中有:
vector<string>::iterator I;
代码第二行,这样做在访问now的时候似乎会对 造成一定的影响,导致 不起作用,超级神奇。
盲猜编译器为了提高效率而没有拷贝全部内容,但这样导致了以外的bug
好的,我自己zz
那样写相当于初始化,就执行一次,能对才鬼了。。。