Delen via


Ingebouwde typen (C++)

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:

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 int

  • unsigned short, unsigned short int

  • int, , signedsigned 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-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.

Zie ook

Gegevenstypebereiken