logo

C の short int とは何ですか?

Cプログラミング言語では、 短い整数 整数値を格納するために使用されるデータ型です。と一緒に使用できる型修飾子です。 int データ型 通常の int よりも少ないメモリを使用して、より小さい整数変数を作成します。

短い整数 データ型が占める 2バイト メモリのサイズは通常の半分です int データ型 、範囲内の整数値を表すことができます。 -32,768 32,767

Short int の構文

Cのブール値

short int 変数を宣言する構文は次のとおりです。

 short int variable_name; 

たとえば、次のコードは、 短い整数 age という名前の変数:

 short int age = 25; 

short int 変数は注意して使用しないとエラーが発生する可能性があります。それは、値の範囲が小さいためです。 int変数 範囲外の値が割り当てられるとオーバーフローする可能性があります。このため、short int 変数に割り当てられる値がその範囲内にあることを確認することが重要です。

さらに、短いキーワードを代わりに使用することもできます。 短い整数 この型の変数を宣言するには。したがって、次の 2 つの宣言は同等です。

 short int variable_name; short variable_name; 

その他の追加情報 「short int」データ型 以下の通り:

    値のサイズと範囲

前述したように、short int は 2バイト これは、通常の int データ型の半分のサイズのメモリです。 short int のサイズは実装によって定義されます。つまり、使用されているプラ​​ットフォームとコンパイラによって異なる可能性があります。ただし、通常の int よりも小さいことが常に保証されます。

値の範囲に関しては、short int は次の範囲の整数値を格納できます。 -32,768 32,767 。この範囲は次を使用して決定できます。 SHRT_MIN そして SHRT_MAX で定義されている定数 制限.h ヘッダファイル。

    「short int」の使用

short int データ型は通常、メモリ容量が問題となる場合、または変数に格納される値の範囲が short int の範囲内にある場合に使用されます。 short int が使用される状況の例としては、次のようなものがあります。

  • メモリが限られている組み込みシステム。
  • メモリ使用量を最適化する必要がある大きな整数配列を作成する場合。
  • 変数に格納されている値の範囲が範囲内であることがわかっている場合 短い整数 人の年齢を保存するなど、通常はこの値を超えません。 100年
  • 型修飾子

short int データ型 は型修飾子です。これは、他のデータ型と組み合わせて使用​​して新しいデータ型を作成できることを意味します。たとえば、次は変数の有効な宣言です。

 short int x; short y; short int *ptr; short int arr[10]; 
    暗黙的な変換

異なるデータ型の変数間で算術演算または比較演算を実行する場合、C は演算が正しく実行されることを保証するために暗黙的な変換を実行する場合があります。 short int 変数を使用する場合は、予期しない動作が発生する可能性があるため、これらの変換に注意することが重要です。たとえば、次のコードを考えてみましょう。

 #include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d
', z); return 0; } 

出力:

 500 

説明:

このコードでは、 z i の値が割り当てられます 500 、これは追加の正しい結果です バツ そして そして 。ただし、 プリントフ ステートメントは次のように変更されます printf('%hu ', z), 出力は次のようになります 244 、これは変換の結果です 500 署名のないものに 短い整数 。それが起こるのは、 %hu 形式指定子が使用されており、出力される値が unsigned short int である必要があることを示します。

ミッションインポッシブルすべての映画
    昇進と降格

異なるデータ型の変数間で演算を実行する場合、C は演算が正しく実行されることを保証するために昇格と降格を実行することがあります。小さいデータ型の変数が大きいデータ型の変数に暗黙的に変換されると昇格が発生し、大きいデータ型の変数が小さいデータ型の変数に暗黙的に変換されると降格が発生します。 short int 変数を使用する場合は、算術演算や比較演算の結果に影響を与える可能性があるため、これらの昇格と降格に注意することが重要です。

    デフォルトの初期化

もし short int 変数 初期化されずに宣言された場合、その値は未定義です。つまり、負の値や範囲外の値を含む任意の値を含めることができます。 短い整数 。したがって、変数を宣言するときは、常に既知の値に初期化することをお勧めします。

    鋳造

鋳造 変数をあるデータ型から別のデータ型に変換するプロセスです。変数をにキャストするとき 短い整数 の場合、変数の値は範囲内に収まるように切り捨てられます。 短い整数 。たとえば、次のコードを考えてみましょう。

 int x = 500; short int y = (short int) x; 

このコードでは、次の値は バツ 500 、これは short int の範囲外です。ただし、そのとき バツ にキャストされます 短い整数、 値は範囲内に収まるように切り捨てられます。 短い整数 、 その結果 そして の値が割り当てられている -12 。したがって、変数をキャストするときは、結果の値がキャストされるデータ型の範囲内にあることを確認することが重要です。

    署名

デフォルトでは、 短い整数 です 符号付きデータ型 つまり、正の値と負の値の両方を表すことができます。ただし、宣言することも可能です 短い整数 符号なしデータ型として、 unsigned short int または 署名のない短いキーワード 。 unsigned short int は負でない値のみを表すことができますが、その範囲は 2 倍になります。 0 65,535

ヒープソート
    互換性

以来 短い整数 よりも小さいデータ型です 整数 で使用すると、暗黙的に int に昇格できます。 算術 または int との比較演算。それは、 短い整数 どこでも使用できます 整数 明示的なキャストを必要とせずに、期待されます。

    携帯性

サイズ 短い整数 使用されているプラ​​ットフォームとコンパイラによって異なる場合があります。さまざまなプラットフォーム間でコードの移植性を確保するには、 stdint.h ヘッダー ファイル 、特定の幅と符号付きの固定サイズの整数型を定義します。たとえば、 int16_t型 です 16ビット符号付き整数型 、これは以下と同等です 短い整数 ほとんどのプラットフォームで。

    配列のインデックス付け

配列を宣言するとき short int 値 、配列の各要素にはインデックスを使用してアクセスします。インデックスには、整数リテラルまたは int 型の変数を使用できます。ただし、インデックスが次の型の変数の場合は、 短い整数 に自動的に昇格します。 整数 配列へのアクセスに使用される前に。例えば:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    ビット操作

短い整数 などのビット操作演算に使用できます。 シフトする そして マスキング 。シフトするときは、 短い整数 value の場合、結果は short int 値になります。ただし、次のようなビット単位の演算子を使用する場合、 & および |、 short int 値は、操作が実行される前にまず int にプロモートされます。

    パフォーマンス

場合によっては、特にメモリや処理能力が限られているプラ​​ットフォームでは、int の代わりに short int を使用するとパフォーマンスが向上することがあります。ただし、使用する特定のアプリケーションとハードウェアによって異なるため、ケースバイケースでテストする必要があります。

    サフィックスを使用した初期化

C 言語には、short int 型で変数を初期化するためのサフィックスが用意されています。接尾語 「さん」 または 「す」 定数値とともに使用して、short int 定数を明示的に指定できます。例えば:

 Short int x=10s;