組み込み型 (C++)

組み込み型 (基本型とも呼ばれます) は、C++ 言語標準によって指定され、コンパイラに組み込まれています。 組み込み型は、どのヘッダー ファイルでも定義されていません。 組み込み型は、整数浮動小数点、および void の 3 つの主なカテゴリに分類されます。 整数型は、整数を表します。 浮動小数点型では、小数部を含む可能性のある値を指定できます。 多くの組み込み型は、コンパイラによって個別の型として扱われます。 ただし、一部の型はシノニムであるか、またはコンパイラによって同等の型として扱われます。

void 型

void 型は一連の空の値を示します。 void 型の変数を指定することはできません。 void 型は、値を返さない関数を宣言したり、型指定しないデータまたは任意の型のデータへのジェネリック ポインターを宣言したりする場合に主に使用します。 式は、 void型に明示的に変換するか、またはキャストできます。 ただし、このような式は次の用途に制限されています。

  • 式ステートメント (詳細については、「」を参照してください。)

  • コンマ演算子の左のオペランド (詳細については、「コンマ演算子」を参照してください。)

  • 条件演算子の 2 番目または 3 番目のオペランド (? :) (詳細については、「条件演算子を含む式」を参照してください。)

std::nullptr_t

キーワード nullptr は、任意の生ポインター型に変換可能な std::nullptr_t 型の null ポインター定数です。 詳細については、nullptrを参照してください。

ブール型

bool 型には、値の truefalse を指定できます。 bool 型のサイズは実装に固有のものです。 Microsoft 固有の実装の詳細については、「組み込み型のサイズ」を参照してください。

文字型

char 型は、基本実行文字セットのメンバーを効率的にエンコードする文字表現型です。 C++ コンパイラは、 char, signed char、および unsigned char 型の変数をそれぞれ異なる型の変数として処理します。

Microsoft 固有: char 型の変数は、/J コンパイル オプションが使用されていない限り、signed char 型の場合のように既定で int に上位変換されます。 この場合、それらは unsigned char 型として扱われ、符号拡張なしで int に上位変換されます。

wchar_t 型の変数はワイド文字またはマルチバイト文字型です。 ワイド文字型を指定するには、文字や文字列リテラルの前に L のプレフィックスを使用します。

Microsoft 固有: 既定で wchar_t はネイティブ型ですが、/Zc:wchar_t- を使用して wchar_tunsigned short の typedef にすることができます。 __wchar_t 型は、ネイティブ wchar_t 型の Microsoft 固有のシノニムです。

char8_t 型は、UTF-8 文字表現に使用されます。 これは unsigned char と同じ表現を持ちますが、コンパイラによって個別の型として扱われます。 char8_t 型は C++20 で新しく追加されたものです。 Microsoft 固有: char8_t を使用するには、/std:c++20 コンパイラ オプションまたはそれ以降 (/std:c++latest など) が必要です。

char16_t 型は、UTF-16 文字表現に使用されます。 UTF-16 コード単位を表すのに十分な大きさである必要があります。 これは、コンパイラによって個別の型として扱われます。

char32_t 型は、UTF-32 文字表現に使用されます。 UTF-32 コード単位を表すのに十分な大きさである必要があります。 これは、コンパイラによって個別の型として扱われます。

浮動小数点型

浮動小数点型は、IEEE-754 表現を使用して、さまざまな大きさの小数値の近似値を示します。 次の表では、C++ での浮動小数点型と、浮動小数点型のサイズに関する制限を比較して示しています。 これらの制限は、C++ 標準によって義務付けられており、Microsoft の実装には依存していません。 組み込み浮動小数点型の絶対サイズは、標準では指定されていません。

Type コンテンツ
float float 型は C++ で最小の浮動小数点型です。
double double 型は float型のサイズ以上で、 long double型のサイズ以下の浮動小数点型です。
long double long double 型は、 double型以上の浮動小数点型です。

Microsoft 固有: long doubledouble の表現は同じです。 ただし、long doubledouble はコンパイラによって個別の型として扱われます。 Microsoft C++ コンパイラは、4 バイトと 8 バイトの IEEE-754 浮動小数点の表現を使用します。 詳細については、「IEEE 浮動小数点表現」を参照してください。

整数型

int 型は、既定の基本整数型です。 それは実装に固有の範囲のすべての整数を表すことができます。

符号付き整数の表現とは、正と負の両方の値を保持できる値のことです。 それは既定で使用されるか、または signed 修飾子キーワードが存在する場合に使用されます。 unsigned 修飾子キーワードは、負以外の値のみを保持できる、符号なしの表現を指定します。

サイズ修飾子は、使用する整数表現の幅をビット単位で指定します。 この言語では、shortlong、および long long 修飾子がサポートされています。 short 型は、16 ビット幅以上である必要があります。 long 型は、32 ビット幅以上である必要があります。 long long 型は、64 ビット幅以上である必要があります。 標準では、整数型の間のサイズの関係が指定されています。

1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

実装では、各型の最小サイズの要件とサイズの関係の両方が維持されている必要があります。 ただし、実際のサイズは、実装によって異なります。 Microsoft 固有の実装の詳細については、「組み込み型のサイズ」を参照してください。

signedunsigned、またはサイズ修飾子が指定されている場合、int キーワードは省略できます。 修飾子と int 型 (存在する場合) は、どのような順序でも表示される可能性があります。 たとえば、short unsignedunsigned int short は同じ型を参照します。

整数型のシノニム

次の一連の型は、コンパイラによってシノニムと見なされます。

  • short, short int, signed short, signed short int

  • unsigned short, unsigned short int

  • int, signed, signed int

  • unsigned, unsigned int

  • long, long int, signed long, signed long int

  • unsigned long, unsigned long int

  • long long, long long int, signed long long, signed long long int

  • unsigned long long, unsigned long long int

Microsoft 固有の整数型には、特定の幅の __int8__int16__int32、および __int64 型が含まれます。 これらの型は、signed および unsigned 修飾子を使用できます。 __int8 データ型は char 型と同じ意味であり、__int16short 型と同じ意味であり、__int32int 型と同じ意味であり、__int64long long 型と同じ意味です。

組み込み型のサイズ

多くの組み込み型には、実装で定義されたサイズがあります。 次の表は、Microsoft C++ において組み込み型に必要とされるストレージの量の一覧です。 特に、64 ビットのオペレーティング システムでも long は 4 バイトです。

Type サイズ
bool, char, char8_t, unsigned char, signed char, __int8 1 バイト
char16_t, __int16, short, unsigned short, wchar_t, __wchar_t 2 バイト
char32_t, float, __int32, int, unsigned int, long, unsigned long 4 バイト
double, __int64, long double, long long, unsigned long long 8 バイト

型ごとの値の範囲の概要については、「データ型の範囲」を参照してください。

型変換の詳細については、「標準変換」を参照してください。

関連項目

データ型の範囲