7

以下がキャストです。

int foo = (int) somefloat;

しかし、これはキャストと見なされますか?

int foo = int( somefloat );

さらに重要なことは、2 つに違いがある場合、結果としてコンパイルされたコードは異なるのでしょうか?

4

3 に答える 3

5

2 番目の例は、関数スタイル キャストと呼ばれることが多く、C++ に追加されましたが、セマンティクス/オブジェクト コードに関しては 2 つに違いはありません。

関数スタイルのキャストが追加された理由の良い説明は次のとおりです。

C++ 関数スタイルのキャストの正確な目的は何ですか?

于 2012-10-02T14:48:10.107 に答える
2

結果の違いはありませんが、C で使用できるのは最初の例だけです。C++ では両方を使用できます。

于 2012-10-02T14:48:20.757 に答える
1

はい、これもキャストです。C++ ではこのスタイルのキャストが可能で、C には(type)expressionフォーマット キャストしかありません。それらは同等です。

于 2012-10-02T14:49:45.113 に答える