1

我试图理解一些古老的代码,我遇到了似乎是从类型中减去的东西。这是一个古老的 C++ 习语吗?我一直在尝试推测,但如果 C++ 有一个带有重载的“类型”类型operator-(),我什至无法猜测它会做什么。

int* array;
if(array[index] != (int)-1)
{
    //do things
}

(我显然已经重构/删除了一些东西来归结这一点;这段代码确实可以编译和工作,但即使我一步步完成,我也无法弄清楚这一行在做什么)周围的括号int可能是一个线索;我不确定他们能做什么。

4

1 回答 1

8

这被-1转换为int,而不是减法。

正如杰里·科芬(Jerry Coffin)很好地指出的那样,演员阵容毫无意义(不是双关语),因为int无论如何该文字都是类型。

于 2013-07-04T01:47:46.787 回答