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