2016-05-23 4 views
0

例えば、unsigned intの代わりにsize_tを使用する利点はありますか?

INT LEN1 = STRLEN(文字列);

size_tのLEN1 = strlen関数(文字列1)

メモリ内のコンパイラの動作やコードの実行時または差のいずれかの違いを作るSIZE_T使用していますか? 私はこの違いについて知っていますが、以前は別のスレッドで回答されていましたが、RAMの動作が心配です。

答えて

1

size_tは符号なしですが、intは署名されています。さらに、プラットフォームによっては、SIZE_MAXsizeof(int)より大きい場合があります。したがって、移植可能なコードを生成するには、size_t(§7.18.3を参照)を使用する必要があります。

データタイプ:サイズ_t

これはオブジェクトの大きさを表すために使用される符号なし整数型です。 sizeof演算子の結果はこの型で、malloc(無制約割り当てを参照)やmemcpy (文字列と配列のコピーを参照)などの 関数は、この型の引数を に受け入れ、オブジェクトサイズを指定します。 GNU Cライブラリを使用するシステムでは、 unsigned intまたはunsigned long intになります。

source

+0

私はビンファイルのメモリ**に違いがあります(私はMCにラムの制約に直面しています)?答えをありがとう! – Chaitanya

2

size_tそれは基本的にアドレス指定可能なメモリ空間と同じ大き得ることができるように、アレイが得ることができる最大サイズを保存することができます。

は最小範囲(0〜65535)で定義されていますが、それよりも大きくなることがあります。たとえば、32ビットマシン上では32ビットであると想定します。

関連する問題