这个static_cast有效/合法吗?

时间:2013-10-07 19:40:17

标签: c++ casting static-cast

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

ab的类型为int64_t

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

这个static_cast有效/合法吗?它有用吗?

2 个答案:

答案 0 :(得分:1)

如果ab都是int64_t,那么演员阵容就没有意义了。它将类型int64_t的结果转换为int64_t类型。这就像这样:

int a = 10, b = 5;
double c = (int)(a - b); // the cast is not needed, but also not "harmful"

答案 1 :(得分:0)

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