Condividi tramite


Conversioni di cast di tipo

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

Sintassi

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

type-name:
specifier-qualifier-listabstract-declaratoroptare

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 tipo. Nella tabella seguente sono illustrati i tipi per cui è possibile eseguire il cast in qualsiasi tipo specificato.

Tipi di destinazione Potenziali origini
Tipi integrali Qualsiasi tipo di Integer o di tipo a virgola mobile o un 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 di integrale, un puntatore a un oggetto o un puntatore a funzione
Una struttura, un'unione o una matrice None
Tipo void Qualsiasi tipo

È possibile eseguire il cast di un identificatore al tipo void. 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.

Vedi anche

Conversioni di tipi