【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】32bit/64bit環境におけるデータ型の範囲とサイズ(バイト単位)とビット幅の一覧表です。一般的な32/64bit環境であれば、long型以外の型については両環境で共通のサイズとなります。long型のサイズについては、32ビット環境では4byte(32bit)、64ビット環境では8byte(64bit)で表現されます。64bit版Windowsで採用されているデータモデル「LLP64」ではlong型のサイズがint型と同等の4byte(32bit)になる点に注意が必要です。データサイズ対応表データ型のサイズは、OSが採用するデータモデルによって大きく変化します。以下の表は、データモデル別のデータサイズをビット単位で表したものです。int型と同等のサイズになるため注意してください。データサイズ対応表」が参考になります。long型は32bit/64bitいずれの環境でも64bit以上のビット幅で表現されます。多くの環境ではlong型と同じ64bit幅で表現されることが多いですが、基本的には処理系依存のサイズとなります。char型の符号についてchar型はコンパイル環境によって符号付きと符号無しに分かれることがあります。char)と同等になっていることがほとんどですが、コンパイル環境/開発環境によっては符号無しになることもあります。char型が符号付きか符号無しかどうかを判定するためには、limits.hヘッダのCHAR_MINマクロ定数の値を調べる方法が一般的です。charが符号無しの場合には本定数の値は0となります。char型が符号付きの場合はCHAR_MINの値は符号付きcharの最小値-128(SCHAR_MIN)と同値になります。puts("char型は符号無しです");}なお、コンパイラによっては、charが符号無しかどうかを判定するための定義済みマクロとして__CHAR_UNSIGNED__が利用できる場合もあります。コンパイル時に明示的にchar型の符号を指定する際には、符号付きの場合にはコンパイルオプションとして-fsigned-char、符号無しの場合は-funsigned-charを指定することができます。