Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Ingebouwde typen (ook wel fundamentele typen genoemd) worden opgegeven door de C++-taalstandaard en zijn ingebouwd in de compiler. Ingebouwde typen worden niet gedefinieerd in een headerbestand. Ingebouwde typen zijn onderverdeeld in drie hoofdcategorieën: integraal, drijvende komma en ongeldigheid. Integrale typen vertegenwoordigen gehele getallen. Typen drijvende komma kunnen waarden opgeven die mogelijk breukdelen bevatten. De meeste ingebouwde typen worden behandeld als afzonderlijke typen door de compiler. Sommige typen zijn echter synoniemen of worden behandeld als gelijkwaardige typen door de compiler.
Ongeldig type
Het void type beschrijft een lege set waarden. Er kan geen variabele van het type void worden opgegeven. Het void type wordt voornamelijk gebruikt om functies te declareren die geen waarden retourneren of algemene aanwijzers declareren voor niet-getypte of willekeurig getypte gegevens. Elke expressie kan expliciet worden geconverteerd of geconverteerd naar type void. Dergelijke expressies zijn echter beperkt tot het volgende gebruik:
Een expressie-instructie. Zie Expressies voor meer informatie.
De linkeroperand van de kommaoperator. Zie Komma-operator voor meer informatie.
De tweede of derde operand van de voorwaardelijke operator (
? :). Zie Expressies met de voorwaardelijke operator voor meer informatie.
std::nullptr_t
Het trefwoord nullptr is een null-aanwijzerconstante van het type std::nullptr_t, die converteerbaar is naar elk type onbewerkte aanwijzer. Zie nullptr voor meer informatie.
Booleaanse waardetype
Het bool type kan waarden true en false. De grootte van het bool type is implementatiespecifiek. Zie De grootten van ingebouwde typen voor microsoft-specifieke implementatiedetails.
Tekentypen
Het char type is een tekenweergavetype waarmee leden van de basisuitvoeringstekenset efficiënt worden gecodeerd. De C++-compiler behandelt variabelen van het type charen signed charunsigned char heeft verschillende typen.
Microsoft-specifiek: variabelen van het type char worden standaard gepromoveerd tot int het type signed char , tenzij de /J compilatieoptie wordt gebruikt. In dit geval worden ze behandeld als type unsigned char en worden ze gepromoveerd tot int zonder tekenextensie.
Een variabele van het type wchar_t is een tekentype breed of multibyte. Gebruik het L voorvoegsel vóór een letterlijk teken of tekenreeks om het type breedteken op te geven.
Microsoft-specifiek: wchar_t standaard is een systeemeigen type, maar u kunt een typedef voor /Zc:wchar_t-wchar_tmakenunsigned short. Het __wchar_t type is een Microsoft-specifiek synoniem voor het systeemeigen wchar_t type.
Het char8_t type wordt gebruikt voor UTF-8-tekenweergave. Het heeft dezelfde weergave als unsigned char, maar wordt behandeld als een uniek type door de compiler. Het char8_t type is nieuw in C++20.
Microsoft-specifiek: voor het gebruik van char8_t de compileroptie of hoger is vereist /std:c++20 (zoals /std:c++latest).
Het char16_t type wordt gebruikt voor UTF-16-tekenweergave. Het moet groot genoeg zijn om een UTF-16-code-eenheid weer te geven. Het wordt behandeld als een uniek type door de compiler.
Het char32_t type wordt gebruikt voor UTF-32-tekenweergave. Deze moet groot genoeg zijn om een UTF-32-code-eenheid weer te geven. Het wordt behandeld als een uniek type door de compiler.
Zwevendekommavormen
Drijvendekommatypen gebruiken een IEEE-754-weergave om een benadering van breukwaarden te bieden over een breed scala aan grootten. De volgende tabel bevat de typen drijvende komma's in C++ en de vergelijkende beperkingen voor grootten van drijvendekommatypen. Deze beperkingen zijn verplicht volgens de C++-standaard en zijn onafhankelijk van de Microsoft-implementatie. De absolute grootte van ingebouwde typen drijvende komma's is niet opgegeven in de standaard.
| Typologie | Inhoud |
|---|---|
float |
Type float is het kleinste drijvende kommatype in C++. |
double |
Type double is een drijvende-kommatype dat groter is dan of gelijk is aan het type float, maar korter dan of gelijk aan de grootte van het type long double. |
long double |
Type long double is een drijvende-kommatype dat groter is dan of gelijk is aan het type double. |
Microsoft-specifiek: de weergave van long double en double is identiek.
long double En double worden echter behandeld als afzonderlijke typen door de compiler. De Microsoft C++-compiler maakt gebruik van de 4- en 8-byte IEEE-754 drijvendekommagepresentaties. Zie IEEE-drijvendekommagepresentatie voor meer informatie.
Gehele getaltypen
Het int type is het standaardtype voor een geheel getal. Het kan alle gehele getallen vertegenwoordigen voor een implementatiespecifiek bereik.
Een ondertekende gehele getalweergave is een weergave die zowel positieve als negatieve waarden kan bevatten. Het wordt standaard gebruikt of wanneer het signed wijzigingswoord aanwezig is. Het unsigned wijzigingswoord geeft een niet-ondertekende weergave op die alleen niet-negatieve waarden kan bevatten.
Een grootteaanpassing geeft de breedte aan in bits van de gebruikte gehele getalweergave. De taal ondersteunt short, longen long long modifiers. Een short type moet ten minste 16 bits breed zijn. Een long type moet ten minste 32 bits breed zijn. Een long long type moet ten minste 64 bits breed zijn. De standaard specificeert een grootterelatie tussen de integrale typen:
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Een implementatie moet zowel de minimale groottevereisten als de grootterelatie voor elk type handhaven. De werkelijke grootten kunnen echter verschillen tussen implementaties. Zie De grootten van ingebouwde typen voor microsoft-specifieke implementatiedetails.
Het int trefwoord kan worden weggelaten wanneer signed, unsignedof grootteaanpassingen worden opgegeven. De modifiers en int het type, indien aanwezig, kunnen in een willekeurige volgorde worden weergegeven. U kunt bijvoorbeeld short unsignedunsigned int short naar hetzelfde type verwijzen.
Synoniemen voor geheel getaltype
De volgende groepen typen worden beschouwd als synoniemen door de compiler:
short,short int,signed short,signed short intunsigned short,unsigned short intint, ,signedsigned intunsigned,unsigned intlong,long int,signed long,signed long intunsigned long,unsigned long intlong long,long long int,signed long long,signed long long intunsigned long long,unsigned long long int
Microsoft-specifieke gehele getallen bevatten de typen specifieke breedte__int8, __int16en __int32__int64 typen. Deze typen kunnen gebruikmaken van de signed en unsigned modifiers. Het __int8 gegevenstype is synoniem voor type char, __int16 is synoniem voor type short, __int32 is synoniem voor type inten __int64 is synoniem voor het type long long.
Grootten van ingebouwde typen
De meeste ingebouwde typen hebben door de implementatie gedefinieerde grootten. De volgende tabel bevat de hoeveelheid opslagruimte die is vereist voor ingebouwde typen in Microsoft C++. Het is met name long 4 bytes, zelfs op 64-bits besturingssystemen.
| Typologie | Grootte |
|---|---|
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
__int64, long double, long longunsigned long long |
8 bytes |
Zie gegevenstypebereiken voor een samenvatting van het bereik met waarden van elk type.
Zie Standard-conversies voor meer informatie over typeconversie.