uint
の代わりにを使用することについて多くの批判を受けてきましたが、使用してsize_t
いるツールチェーンを確認するたびに、 がsize_t
として定義されていることがわかりuint
ます。
size_t
実際にはではないコンパイラの実装はありuint
ますか? その批判の根拠は何ですか?
uint
の代わりにを使用することについて多くの批判を受けてきましたが、使用してsize_t
いるツールチェーンを確認するたびに、 がsize_t
として定義されていることがわかりuint
ます。
size_t
実際にはではないコンパイラの実装はありuint
ますか? その批判の根拠は何ですか?
size_t
「マシンで使用できる最大のアドレス範囲に一致するサイズ」(または、おおよそその効果を表すいくつかの単語)です。
特に、size_t
64 ビット マシンでは 64 ビット、32 ビット システムでは 32 ビットになります。
私は、uint
が不足していると仮定してunsigned int
います。これは、ほぼ普遍的に 32 ビットです (最近では、一部の古いシステムでは 16 ビット整数が使用されています)。そのため、64 ビット システムでは、unsigned int
メモリ割り当て、文字列などのサイズが 32 ビットよりも大きくなる可能性がありますが、32 ビットのままですuint
。サイズを使用しようとすると問題が発生します。