0
double diff = static_cast<int64_t>(a- b);

a并且b是 类型int64_t

我在我们的项目中看到了这段代码。我认为这很可疑,但我真的不确定。我很熟悉static_cast,我不会写这样的代码。

这是 static_cast 有效/合法吗?有用吗?

4

2 回答 2

1

如果ab都是int64_t,则演员表没有意义。它将 type 的结果转换int64_t为 type int64_t。就像这样做:

int a = 10, b = 5;
double c = (int)(a - b); // the cast is not needed, but also not "harmful"
于 2013-10-07T19:51:17.237 回答
0

这个演员表是有效的,但没有做任何事情。我同意这是可疑的。您应该仔细检查代码应该做什么,如果它是正确的,那么您可能需要重新编写它,以使意图更清晰,使其看起来不那么可疑。

于 2013-10-07T20:35:27.123 回答