【发布时间】:2011-06-06 16:02:39
【问题描述】:
考虑下面我的 C++ 代码:
int _tmain(int argc, _TCHAR* argv[])
{
int by = 10;
printf("%d\n", by);
int bx = 20;
printf("%d\n", (by + bx));
return 0;
}
效果很好。有趣的是“by”变量。如果我尝试为包含 by 的简单表达式添加监视,结果将是 CXX0030:错误:无法评估表达式。
例如,在return 0 的断点上,如果我添加以下手表,我会得到提到的结果:
by : 10
bx : 20
by + 5 : CXX0030: Error: expression cannot be evaluated
bx + 5 : 25
by + bx : CXX0030: Error: expression cannot be evaluated
(by) + bx : 30
by + (bx) : CXX0030: Error: expression cannot be evaluated
bx + (by) : CXX0014: Error: missing operrand
这发生在VS2010、VS2008上的多台计算机上。
那么,出于好奇,“by”是怎么回事?它是某种奇怪的运算符吗?为什么 bx 没有得到同样的待遇?
(我已经在这方面尝试过 google,但很难用“by”之类的术语获得一些相关的点击)
【问题讨论】:
-
提交错误报告,我这里也有
-
啊,我希望这是某种隐藏功能 :D,而不仅仅是一个普通的错误。
-
“缺失操作数”这一点尤其令人瞠目结舌。
-
Parna,你的愿望已经实现 :-) 请参阅下面的友好讨论。
标签: c++ watch visual-studio-debugging