1

uintの代わりにを使用することについて多くの批判を受けてきましたが、使用してsize_tいるツールチェーンを確認するたびに、 がsize_tとして定義されていることがわかりuintます。

size_t実際にはではないコンパイラの実装はありuintますか? その批判の根拠は何ですか?

4

1 に答える 1

6

size_t「マシンで使用できる最大のアドレス範囲に一致するサイズ」(または、おおよそその効果を表すいくつかの単語)です。

特に、size_t64 ビット マシンでは 64 ビット、32 ビット システムでは 32 ビットになります。

私は、uintが不足していると仮定してunsigned intいます。これは、ほぼ普遍的に 32 ビットです (最近では、一部の古いシステムでは 16 ビット整数が使用されています)。そのため、64 ビット システムでは、unsigned intメモリ割り当て、文字列などのサイズが 32 ビットよりも大きくなる可能性がありますが、32 ビットのままですuint。サイズを使用しようとすると問題が発生します。

于 2013-06-11T09:49:05.630 に答える