Condividi tramite


conversioni Type-Cast

È possibile usare i cast di tipo per convertire in modo esplicito i tipi.

Sintassi

cast-expression:
unary-expression
( type-name ) cast-expression

type-name:
specifier-qualifier-list abstract-declarator optare

type-name è un tipo e cast-expression è un valore da convertire in tale tipo. Un'espressione con un cast di tipo non è un l-value. L'oggetto cast-expression viene convertito come se fosse stato assegnato a una variabile di tipo type-name. Le regole di conversione per le assegnazioni (descritte in Conversioni di assegnazione) si applicano anche ai cast di tipi. Nella tabella seguente vengono illustrati i tipi di cui è possibile eseguire il cast a qualsiasi tipo specificato.

Tipi di destinazione Potenziali fonti
Tipi integrali Qualsiasi tipo integer o tipo a virgola mobile o puntatore a un oggetto
A virgola mobile Qualsiasi tipo aritmetico
Puntatore a un oggetto o void * Qualsiasi tipo integer, void *, un puntatore a un oggetto o un puntatore a funzione
Puntatore a funzione Qualsiasi tipo integrale, un puntatore a un oggetto o un puntatore a funzione
Struttura, unione o matrice Nessuno
Tipo 'void' Qualsiasi tipo

È possibile eseguire il cast di qualsiasi identificatore al void tipo. Tuttavia, se il tipo specificato in un'espressione type-cast non voidè , l'identificatore sottoposto a cast a tale tipo non può essere un'espressione void . È possibile eseguire il cast di qualsiasi espressione su void, ma non è possibile eseguire il cast di un'espressione di void tipo a qualsiasi altro tipo. Ad esempio, una funzione con void tipo restituito non può avere il cast restituito a un altro tipo.

Un'espressione void * dispone di un puntatore di tipo a void, non di tipo void. Se viene eseguito il cast di un oggetto al void tipo, l'espressione risultante non può essere assegnata ad alcun elemento. Analogamente, un oggetto cast di tipo non è un valore l-value accettabile, quindi non è possibile eseguire alcuna assegnazione a un oggetto cast di tipo.

Sezione specifica Microsoft

Un cast di tipo può essere un'espressione l-value purché le dimensioni dell'identificatore non cambino. Per informazioni sulle espressioni l-value, vedere Espressioni L-Value e R-Value.

Fine sezione specifica Microsoft

È possibile convertire un'espressione in un tipo void con un cast, ma l'espressione risultante può essere usata solo se non è necessario un valore. Un puntatore all'oggetto void * convertito in e di nuovo nel tipo originale restituirà il valore originale.

Vedere anche

Conversioni dei tipi