【发布时间】:2012-09-29 17:58:27
【问题描述】:
我在我的一种方法中遇到了这个错误:“符号 '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' 中声明一个类型,编译器会发出 'Cannot resolve 'pa' symbol' 错误。 'findAtomByLexCode' 要么返回指向 'PredefinedAtom*' 的指针,要么返回 NULL。
【问题讨论】:
-
符号定义是否被接受为 C++ 中的条件表达式??
-
@g-makulik 在“一些代码”部分,如果它不为空,我会返回“pa”