C の基本:型
プログラムが扱うデータの形式(及び付随する操作)は型(type)により指定されます。コンピュータ上では全てがバイト列で表される訳なので、型はバイト列の解釈を決める情報と言う事もできます。
数値型
Cが定めている最も基本的な型は整数型(integer type)でしょう。これな名前の通り整数を表現します。
整数型は負の数が表現可能かどうかにより符号付き(signed)整数型と符号なし(unsigned)整数型に分けられます。また符号の有無の他にサイズ(領域のバイト数)の違いでもいくつか種類があり、それぞれの特徴は以下の様になっています。
型 | バイト数 | 符号 | 最小値 | 最大値 |
---|---|---|---|---|
signed char char |
1 | 有 | 0 | 256 |
unsigned char | 1 | 無 | -128 | 127 |
short | 2 | 有 | -32768 | 32767 |
unsigned short | 2 | 無 | 0 | 65535 |
int long※ |
4 | 有 | -2147483648 | 2147483647 |
unsigned int unsigned long |
4 | 無 | 0 | 4294967295 |
long long | 8 | 有 | -9223372036854775808 | 9223372036854775807 |
unsigned long long | 8 | 無 | 0 | 18446744073709551615 |
※ 64 ビット環境のlongは 8 バイトの場合もある。
整数のバイト(ビット)列としての表現は「C の前に:データの表現」で述べた通りです。
整数型には 0 と 1 だけを表現する事のみ想定されたboolという型もありますが(用途は「C の基本:条件式と真理値」で説明する「真理値」の表現です)、通常はcharと同じ 1 バイトです。
また「C の知識:列挙型」で説明する「列挙型」も数値型の一つです。
実数型は IEEE 754 に従う浮動小数点数で、以下の三つの型があります。
型 | バイト数 | 仮数部 | 指数部 | 十進法での精度 | 名称 | IEEE 754 での名称 |
---|---|---|---|---|---|---|
float | 4 | 23+1 | 8 | 7.22…桁 | 単精度 | binary32 |
double | 8 | 52+1 | 11 | 15.95…桁 | 倍精度 | binary64 |
long double | 16 | 112+1 | 15 | 34.02…桁 | 四倍精度 | binary128 |
(これらの型は規格で厳密に規定されている訳ではありません。「C の詳細:型の定義」を参照)
それ以外の型
数値型でないものでは、特別な型としてvoid型があり、これは何も表現される値を持ちません。voidは例えば、関数が何も値を返さない場合の返り値の型として使われます。
またこの頁以降に説明するものとして
- ポインタ型(C の基本:ポインタ)
- 配列型(C の基本:配列)
- 構造体型(C の基本:複雑な型)
があります。