11

size_t またはその他の型識別子が括弧で囲まれている場合に何が起こるかを誰かが説明できますか? 私はそれが古い型キャスト構文であることを知っていますが、この文脈では何が起こっているのかを追っていません。

タイプの最大サイズを次のように定義するためにそれを見てきました:

size_t max_size = (size_t)-1
4

3 に答える 3

14

このコードは (不必要に) にキャスト-1size_tます。最も可能性の高い意図はsize_t 、このシステムで の最大値を取得することでした。

このコードには未定義の動作はありませんが、このコードは醜いです。C++ では使用する必要がstd::numeric_limits<size_t>::max()あり、Cでは最大値SIZE_MAXを取得する目的でマクロを使用する必要があります。size_t

于 2013-10-07T20:38:56.860 に答える
1

(size_t)-1実際には同等ですsize_t(-1)

次の質問c キャスト構文スタイルも参照してください

于 2013-10-07T20:39:21.450 に答える