Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Integrierte Typen (auch als grundlegende Typen bezeichnet) werden durch den C++-Sprachstandard angegeben und in den Compiler integriert. Integrierte Typen werden in keiner Headerdatei definiert. Integrierte Typen sind in drei Hauptkategorien unterteilt: Integral, Gleitkomma und Leerzeichen. Integrale Typen stellen ganze Zahlen dar. Gleitkommatypen können Werte angeben, die Bruchteile enthalten können. Die meisten integrierten Typen werden vom Compiler als unterschiedliche Typen behandelt. Einige Typen sind jedoch Synonyme oder werden vom Compiler als gleichwertige Typen behandelt.
void-Typ
Der void Typ beschreibt einen leeren Wertesatz. Es kann keine Variable vom Typ void angegeben werden. Der void Typ wird hauptsächlich verwendet, um Funktionen zu deklarieren, die keine Werte zurückgeben oder generische Zeiger auf nicht typisierte oder willkürlich eingegebene Daten deklarieren. Jeder Ausdruck kann explizit konvertiert oder in den Typ voidumgewandelt werden. Allerdings werden solche Ausdrücke auf folgende Anwendungsbereiche begrenzt:
Eine Ausdrucksanweisung. Weitere Informationen finden Sie unter Expressions.
Der linke Operand des Komma-Operators. Weitere Informationen finden Sie unter Kommaoperator.
Der zweite oder dritte Operand des bedingten Operators (
? :). Weitere Informationen finden Sie unter Ausdrücke mit dem bedingten Operator.
std::nullptr_t
Das Schlüsselwort nullptr ist eine Nullzeigerkonstante vom Typ std::nullptr_t, die in einen beliebigen unformatierten Zeigertyp umsetzbar ist. Weitere Informationen finden Sie unter nullptr.
Boolescher Typ
Der bool Typ kann Werte true und false. Die Größe des bool Typs ist implementierungsspezifisch. Siehe Größen integrierter Typen für Microsoft-spezifische Implementierungsdetails.
Zeichentypen
Der char Typ ist ein Zeichendarstellungstyp, der Elemente des grundlegenden Ausführungszeichensatzes effizient codiert. Der C++-Compiler behandelt Variablen des Typs char, signed charund unsigned char , als würde es sich um unterschiedliche Typen handeln.
Microsoft-spezifische: Variablen vom Typ werden standardmäßig als char vom Typ intsigned char heraufgestuft, es sei denn, die /J Kompilierungsoption wird verwendet. In diesem Fall werden sie als Typ unsigned char behandelt und ohne Signierungserweiterung heraufgestuft int .
Eine Variable vom Typ wchar_t ist ein Breitzeichen- oder Multibyte-Zeichentyp. Verwenden Sie das L Präfix vor einem Zeichen- oder Zeichenfolgenliteral, um den Breitzeichentyp anzugeben.
Microsoft-spezifisch: Standardmäßig wchar_t ist ein systemeigener Typ, Sie können aber verwenden /Zc:wchar_t- , um wchar_t einen Typedef für unsigned short. Der Typ __wchar_t ist ein Microsoft-spezifisches Synonym für den systemeigenen Typ wchar_t .
Der char8_t Typ wird für UTF-8-Zeichendarstellung verwendet. Sie hat die gleiche Darstellung wie unsigned char, wird jedoch vom Compiler als unterschiedlicher Typ behandelt. Der char8_t Typ ist neu in C++20.
Microsoft-spezifisch: Die Verwendung erfordert char8_t die /std:c++20 Compileroption oder höher (z. B /std:c++latest. ).
Der char16_t Typ wird für UTF-16-Zeichendarstellung verwendet. Es muss groß genug sein, um eine UTF-16-Codeeinheit darzustellen. Es wird vom Compiler als eindeutiger Typ behandelt.
Der char32_t Typ wird für UTF-32-Zeichendarstellung verwendet. Es muss groß genug sein, um eine UTF-32-Codeeinheit darzustellen. Es wird vom Compiler als eindeutiger Typ behandelt.
Gleitkommatypen
Gleitkommatypen verwenden eine IEEE-754-Darstellung, um eine Annäherung von Bruchwerten über einen breiten Bereich von Größenordnungen bereitzustellen. In der folgenden Tabelle sind die Gleitkommatypen in C++ und die vergleichenden Einschränkungen für Gleitkommatypen aufgeführt. Diese Einschränkungen werden vom C++-Standard vorgeschrieben und sind unabhängig von der Microsoft-Implementierung. Die absolute Größe der integrierten Gleitkommatypen wird nicht im Standard angegeben.
| type | Contents |
|---|---|
float |
Typ float ist der kleinste Gleitkommatyp in C++. |
double |
Der Typ double ist ein Gleitkommatyp, der größer oder gleich dem Typ float, aber kleiner oder gleich der Größe des Typs long doubleist. |
long double |
Der Typ long double ist ein Gleitkommatyp, der größer als der oder gleich dem Typ doubleist. |
Microsoft-spezifisch: Die Darstellung von long double und double ist identisch.
long double
double Sie werden jedoch vom Compiler als unterschiedliche Typen behandelt. Der Microsoft C++-Compiler verwendet die 4- und 8-Byte IEEE-754-Gleitkommadarstellungen. Weitere Informationen finden Sie unter IEEE-Gleitkommadarstellung.
Ganzzahltypen
Der int Typ ist der standardmäßige ganzzahlige Standardtyp. Sie kann alle Zahlen über einen implementierungsspezifischen Bereich darstellen.
Eine signierte ganzzahlige Darstellung ist eine, die sowohl positive als auch negative Werte enthalten kann. Sie wird standardmäßig verwendet oder wenn das signed Zusatzwort vorhanden ist. Das unsigned Schlüsselwort des Modifizierers gibt eine nicht signierte Darstellung an, die nur nicht negative Werte enthalten kann.
Ein Größenmodifizierer gibt die Breite in Bits der verwendeten ganzzahligen Darstellung an. Die Sprache unterstützt short, longund long long Modifizierer. Ein short Typ muss mindestens 16 Bit breit sein. Ein long Typ muss mindestens 32 Bit breit sein. Ein long long Typ muss mindestens 64 Bit breit sein. Der Standard gibt eine Größenbeziehung zwischen den integralen Typen an:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Eine Implementierung muss sowohl die Mindestgrößenanforderungen als auch die Größenbeziehung für jeden Typ beibehalten. Die tatsächlichen Größen können jedoch zwischen Implementierungen variieren. Siehe Größen integrierter Typen für Microsoft-spezifische Implementierungsdetails.
Das int Schlüsselwort kann weggelassen werden, wenn signed, unsignedoder Größenmodifizierer angegeben werden. Die Modifizierer und int -typen können in beliebiger Reihenfolge angezeigt werden. Beispiel: short unsignedunsigned int short Verweisen sie auf denselben Typ.
Synonyme für ganzzahlige Typen
Die folgenden Typengruppen werden vom Compiler als Synonyme betrachtet:
short, ,short intsigned shortsigned short intunsigned short,unsigned short intint,signedsigned intunsigned,unsigned intlong, ,long intsigned longsigned long intunsigned long,unsigned long intlong long, ,long long intsigned long longsigned long long intunsigned long long,unsigned long long int
Microsoft-spezifische ganzzahlige Typen umfassen die spezifische Breite __int8, , __int16, __int32und __int64 Typen. Diese Typen können die signedunsigned Modifizierer und Modifizierer verwenden. Der Datentyp __int8 entspricht dem Typ char, __int16 dem Typ short, __int32 dem Typ int und __int64 dem Typ long long.
Größen integrierter Typen
Die meisten integrierten Typen weisen implementierungsdefinierte Größen auf. In der folgenden Tabelle ist die Menge an Speicherplatz aufgeführt, der für integrierte Typen in Microsoft C++ erforderlich ist. Insbesondere long beträgt 4 Byte sogar auf 64-Bit-Betriebssystemen.
| type | Size |
|---|---|
bool, , charchar8_t, unsigned char, , signed char__int8 |
1 Byte |
char16_t, , __int16short, unsigned short, , wchar_t__wchar_t |
2 Bytes |
char32_t, , float__int32, int, unsigned int, , longunsigned long |
4 Bytes |
double, , __int64long double, , long longunsigned long long |
8 Bytes |
Eine Zusammenfassung des Wertebereichs der einzelnen Typen finden Sie unter "Datentypbereiche ".
Weitere Informationen zur Typkonvertierung finden Sie unter Standardkonvertierungen.