C言語の変数に代入できる最大値と最小値の調べ方

C言語の変数には代入できる値のそれぞれ範囲が決まっています。

ここで問題になるのが実は「○○型はxx~yyまで」と決まっているものと、処理系(動作するOSやコンパイラ)に依存するものがあります。

今回はそんなC言語の変数には代入できる値の範囲を調べるためのソースコードです。

スポンサーリンク

C言語のプリミティブ型の種類

C言語の変数に代入できる値は、それぞれの型に依存します。

現在C言語で利用できる主なプリミティブ型は以下のものです。

  • _Bool
  • char
  • short
  • int
  • long
  • long long
  • double
  • float

これらの変数それぞれに「singed(符号付)」と「unsigned(符号なし)」の変数が宣言できます。
※_Boolは除く

それぞれの変数としてのバイト数(大きさ)を確認するソースは以下ののようにすれば確認できます。

実行結果は以下のようになります。

C言語のプリミティブ型の定数定義

C言語のプリミティブ型は先に述べたように処理系(OSやコンパイラ)に依存するものがあるので、あらかじめそれぞれの最大値と最小値をマクロ定数として定義されています。
定義はlimits.hに定義されており、以下のように利用することができます。

実行結果は以下のようになります。

まとめ

C言語の変数のメモリ上のバイト数や、変数の取り得る最大値、最小値を簡単に表示させてみました。

それぞれの処理系(OS、コンパイラ)で異なる部分があるので、コーディングする際は調査してから利用するようにしましょう。
(オーバーフローなど、思わぬトラブルに見舞われることになります。)

以上、「C言語の変数に代入できる最大値と最小値の調べ方」でした。

タイトルとURLをコピーしました