C言語基礎講座では、整数宣言には int を使うと説明しています。本稿執筆時点の 2022.08.01 現在、VS2022 は int を 32bit で扱っています。x64 マシンで int を 64bit で扱う事もありましたが、現在、x64 マシンであっても VS2022 では、 int は 32bit で定義されているようです。32bit は、数値としては -2,147,483,648 ~ 2,147,483,647 という巨大な大きさとなります。所謂符号付きの 4バイトとなります。

int は、CPU にとって最も扱いやすい、あるいはコンパイラにとって都合の良い、最も高速に処理できる大きさが使用されます。このサイズを決めているのはコンパイラです。特殊な事が無い限りは int で変数宣言すれば良いのですが、この範囲から逸脱するような大きさの数値を扱う場合は int では困ります。そのため、新しい環境でC言語を使い始める際は、int を始めとした型のサイズを確認する事から始めます。
※ 範囲から逸脱するとオーバーフローやアンダーフローという問題が発生しますが、それはまた別の機会に

レトロPCのようなメモリサイズの小さなマシンでデータを扱う際に、(そもそも割り当てられないとは思いますが)1つの数値に 32bit(4バイト)も使われてしまうとサイズが大きすぎて困ります。そのため、C言語では、使用する数値のサイズに応じた型が別途用意されています。int 以外で整数で用意されている標準的な型が以下となります。

 char      -128 ~ 127 ※ char コンパイラの指定で変化します。
 short     -32,768 ~ 32,767
 long      -2,147,483,648 ~ 2,147,483,647

char は少し特殊です。文字として使うなら気にしなくて良いですが、数値として使うのはやや使いづらい部分はあります。あと、マイナスの値が要らない事もよくあります。その場合は、下記のように unsigned を修飾する事で、消費メモリが同じまま、2倍大きい数値を扱えるようになります。

 unsigned char     0 ~ 255
 unsigned short    0 ~ 65,535
 unsigned long     0 ~ 4,294,967,295

ここまで説明しておいてナンですが、実は上記の扱える数値の範囲は厳密に覚えなくて良いです。覚えるとしたら、char short の有効範囲ぐらいでしょうか。経験上、この二つはよく範囲からはみ出す問題が発生します。また、char ≦ short ≦ long という順番で扱えるサイズが変わるのも覚えておくと良いでしょう。なお、unsigned とだけ型宣言すると、unsigned int と同じになります。

int は今まで時代の変化で扱える大きさが変化してきた経緯があります。このサイズの違いは移植などで大変困る事になりますので、制作の現場では int を使わず、型のサイズが明確にされている以下の型宣言を使用している事が多くなりました。

__int8    int8_t    VS2022 の char と同じ
__int16  int16_t  VS2022 の short と同じ
__int32  int32_t  VS2022 の long と同じ
__int64  int64_t  VS2022 の long long と同じ ※ long long は C++の型である可能性あり

実数も同様に、扱えるサイズによって float の他に double という型があります。フルハイビジョンサイズの 1920×1080程度であれば float でも対応出来ますが、4K モニタの対応になると(アプリにもよりますが)もはや float では誤差が大きすぎて使い物にならず、double で対応していく事になります。分かるとは思いますが、float double では、float のほうが断然高速に処理します。なお、実数は正確には浮動小数点型と呼ばれています。本講座ではこれに関しては実数と省略して呼んでいます。

その他、型に関して興味が湧けば、以下のリンクに細かい記載があるので読んでおくのをオススメします。但し、こちらで説明されている型の範囲は、Microsoft C++ で扱っている型となりますので、お使いの C コンパイラで全て扱えるかどうかは、ご自身でお調べください。また、C言語基礎講座では予告なく C++ の型も使う可能性があります。以上、あしからずご了承ください。
※ Main.c とせず Main.cpp としている理由だったりします。

データ型の範囲

強調しておきますが、私の基礎講座では特記が無ければ全て VS2022 を前提としています。本講座で扱う予定の範囲だけで言えば、整数は int、実数は float、文字は char だけで十分です。
※ PC Engine mini 用とありますが、PC にも使用できます。ただ、ボタン配置が逆になるみたいです。連射も効くようです。値段的にお買い得では?