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.
U kunt typecasts gebruiken om typen expliciet te converteren.
Syntaxis
cast-expression:
unary-expression
(
type-name
)
cast-expression
type-name:
specifier-qualifier-list
abstract-declarator
opteren
Het type-name is een type en cast-expression is een waarde die naar dat type moet worden geconverteerd. Een expressie met een typecast is geen l-waarde. De cast-expression wordt geconverteerd alsof deze is toegewezen aan een variabele van het type type-name. De conversieregels voor toewijzingen (beschreven in Toewijzingsconversies) zijn ook van toepassing op typecasts. In de volgende tabel ziet u de typen die naar een bepaald type kunnen worden gecast.
Rechtstype casts
| Doeltypen | Mogelijke bronnen |
|---|---|
| Integrale typen | Een geheel getaltype of een drijvende-kommatype, of aanwijzer naar een object |
| Drijvende komma | Elk rekenkundig type |
Een aanwijzer naar een object of void * |
Een geheel getal, void *een aanwijzer naar een object of een functieaanwijzer |
| Functie-aanwijzer | Elk integraal type, een aanwijzer naar een object of een functieaanwijzer |
| Een structuur, samenvoeging of matrix | Geen |
| Ongeldig type | Alle soorten |
Elke id kan worden gecast naar type void . Als het type dat is opgegeven in een typecast-expressie echter niet voidis, kan de id die naar dat type wordt gecast, geen expressie zijn void . Elke expressie kan worden gecast naar void, maar een expressie van het type void kan niet naar een ander type worden gecast. Een functie met void een retourtype kan bijvoorbeeld niet de geretourneerde cast naar een ander type hebben.
Een void * expressie heeft een type aanwijzer naar void, niet type void. Als een object wordt gecast om te void typen, kan de resulterende expressie niet worden toegewezen aan een item. Op dezelfde manier is een type-cast-object geen acceptabele l-waarde, dus er kan geen toewijzing worden gemaakt aan een type-cast-object.
Microsoft-specifieke
Een typecast kan een expressie met l-waarden zijn, zolang de grootte van de id niet verandert. Zie L-Value- en R-Value-expressies voor informatie over l-value-expressies.
Microsoft-specifieke beëindigen
U kunt een expressie converteren naar type void met een cast, maar de resulterende expressie kan alleen worden gebruikt als een waarde niet vereist is. Een objectaanwijzer die is geconverteerd naar void * en terug naar het oorspronkelijke type, wordt teruggezet naar de oorspronkelijke waarde.