我遇到了这个错误:在我的一种方法中无法解析符号'pa'。编码:
PredefinedAtom* PredefinedSymbolTableCollection::findAtomByLexCode(u_int lex_code) {
// PredefinedAtom* pa; // <== ACCEPTED
for(u_int i = 0; i < pst.size(); i++) {
if((PredefinedAtom* pa = pst[i]->findAtomByLexCode(i)) != NULL){// <== BAD
// some code
}
}
}
如果我在“if”范围之外声明一种 PredefinedAtom,则代码将编译/运行。但是,如果我尝试在“if”中声明一个类型,编译器会发出“无法解析 'pa' 符号”错误。'findAtomByLexCode' 要么返回指向 'PredefinedAtom*' 的指针,要么返回 NULL。