データ型の範囲
Microsoft C++ の 32 ビットおよび 64 ビット コンパイラは、この記事の次の表に示す型を認識します。
- int (unsigned int)
- __int8 (unsigned __int8)
- __int16 (unsigned __int16)
- __int32 (unsigned __int32)
- __int64 (unsigned __int64)
- short (unsigned short)
- long (unsigned long)
- long long (unsigned long long)
名前が 2 つのアンダースコア (__
) で始まっている場合、そのデータ型は非標準です。
次の表で指定している範囲には、その最大値と最小値も含まれます。
種類名 | バイト | その他の名前 | 値の範囲 |
---|---|---|---|
int |
4 | signed |
-2,147,483,648 ~ 2,147,483,647 |
unsigned int |
4 | unsigned |
0 ~ 4,294,967,295 |
__int8 |
1 | char |
-128 ~ 127 |
unsigned __int8 |
1 | unsigned char |
0 ~ 255 |
__int16 |
2 | -32,768 ~ 32,767 | |
unsigned __int16 |
2 | $ | 0 ~ 65,535 |
__int32 |
4 | -2,147,483,648 ~ 2,147,483,647 | |
unsigned __int32 |
4 | $ | 0 ~ 4,294,967,295 |
__int64 |
8 | $ | -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 |
unsigned __int64 |
8 | unsigned long long |
0 ~ 18,446,744,073,709,551,615 |
bool |
1 | なし | false または true |
char |
1 | なし | 既定では -128 から 127/J を使用してコンパイルするときは 0 から 255 |
signed char |
1 | なし | -128 ~ 127 |
unsigned char |
1 | なし | 0 ~ 255 |
short |
2 | $ | -32,768 ~ 32,767 |
unsigned short |
2 | unsigned short int |
0 ~ 65,535 |
long |
4 | $ | -2,147,483,648 ~ 2,147,483,647 |
unsigned long |
4 | unsigned long int |
0 ~ 4,294,967,295 |
long long |
8 | なし (ただし、__int64 と同等) |
-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 |
unsigned long long |
8 | なし (ただし、unsigned __int64 と同等) |
0 ~ 18,446,744,073,709,551,615 |
enum |
多様 | なし | |
float |
4 | なし | 3.4E +/- 38 (7 桁) |
double |
8 | なし | 1.7E +/- 308 (15 桁) |
long double |
double と同じ |
なし | double と同じ |
wchar_t |
2 | __wchar_t |
0 ~ 65,535 |
__wchar_t
の変数は、ワイド文字型またはマルチバイト文字型のいずれかを指定します。 ワイド文字型の定数を指定するには、文字または文字列定数の前に L
のプレフィックスを使用します。
signed
と unsigned
は、 bool
以外の任意の整数型と組み合わせて使用できる修飾子です。 char
、signed char
、unsigned char
は、オーバーロードやテンプレートのようなしくみのために用意された、3 つの異なる型であることに注意してください。
int
と unsigned int
型のサイズは 4 バイトです。 ただし、言語標準で int
のサイズを実装固有にすることが許されているため、移植可能なコードではこれに依存しないようにする必要があります。
Visual Studio での C/C++ では、サイズが設定された整数型をサポートしています。 詳細については、「__int8, __int16, __int32, __int64
」および「整数の制限」を参照してください。
型ごとのサイズの制限の詳細については、「組み込み型」を参照してください。
列挙型の範囲は、言語コンテキストと指定したコンパイラ フラグによって異なります。 詳細については、「 C 列挙体の宣言 」および「 列挙型」を参照してください。