以下の私の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」のような用語でいくつかの関連するヒットを得るのは非常に難しいです)