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

aおよびbタイプはint64_tです。

私たちのプロジェクトでこのコードを見ました。疑わしいと思いますが、よくわかりません。私は に精通しておりstatic_cast、このようなコードは書きません。

この static_cast は有効/合法ですか? それは役に立ちますか?

4

2 に答える 2

1

abが両方ともである場合int64_t、キャストの意味はありません。int64_ttype の結果を 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 に答える