double diff = static_cast<int64_t>(a- b);
a
并且b
是 类型int64_t
。
我在我们的项目中看到了这段代码。我认为这很可疑,但我真的不确定。我很熟悉static_cast
,我不会写这样的代码。
这是 static_cast 有效/合法吗?有用吗?
double diff = static_cast<int64_t>(a- b);
a
并且b
是 类型int64_t
。
我在我们的项目中看到了这段代码。我认为这很可疑,但我真的不确定。我很熟悉static_cast
,我不会写这样的代码。
这是 static_cast 有效/合法吗?有用吗?
如果a
和b
都是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"
这个演员表是有效的,但没有做任何事情。我同意这是可疑的。您应该仔细检查代码应该做什么,如果它是正确的,那么您可能需要重新编写它,以使意图更清晰,使其看起来不那么可疑。