考虑下面我的 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 没有得到同样的待遇?
(我已经在这方面尝试过谷歌,但很难用“by”之类的术语获得一些相关的点击)