Conversioni di cast di tipo
È possibile utilizzare cast di tipo in modo esplicito per convertire i tipi.
Sintassi
espressione cast:
un'espressione unaria( nome del tipo ) espressione cast
nome del tipo:
astratto-dichiaratore dell'identificatore-qualificatore-elenco scegliere
nome del tipo è un tipo e espressione cast è un valore da convertire in quel tipo.Un'espressione con un cast di tipo non è un l-value.espressione cast viene convertito come se fosse assegnato a una variabile di tipo nome del tipo.Le regole di conversione per le assegnazioni (delimitate in conversioni di assegnazione) applicare ai cast di tipo anche.Nella tabella seguente sono illustrati i tipi che è possibile eseguire il cast a qualsiasi tipo specificato.
cast di tipo validi
tipi di destinazione |
Origini potenziali |
---|---|
Tipi integrali |
Qualsiasi tipo integer o tipo a virgola mobile, o puntatore a un oggetto |
a virgola mobile |
qualsiasi tipo aritmetico |
Un puntatore a un oggetto o,void *) |
Qualsiasi tipo integer, ovverovoid *), 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 |
Una struttura, un'unione, oppure una matrice |
Nessuno |
tipo void |
Qualsiasi tipo |
Qualsiasi identificatore è possibile eseguire il cast su void tipo.Tuttavia, se il tipo specificato in un'espressione di cast di tipo non viene void, quindi l'identificatore di cui viene eseguito il cast al tipo non può essere un oggetto void espressione.Qualsiasi espressione è possibile eseguire il cast su void, ma un'espressione di tipo void non è possibile eseguire il cast a qualsiasi altro tipo.Ad esempio, una funzione con void il tipo restituito non può avere il cast di tornare a un altro tipo.
si noti che a void * l'espressione ha un tipo puntatore a void, non tipo void.Se un oggetto viene eseguito il cast su void il tipo, l'espressione risultante non può essere assegnato a qualsiasi elemento.Analogamente, un oggetto di cast di tipo non è un l-value accettabile, pertanto alcuna assegnazione può essere eseguita in un oggetto del cast di tipo.
Specifici di Microsoft
Un cast di tipo può essere un'espressione l-value purché la dimensione dell'identificatore non cambia.Per informazioni sulle espressioni l-value, vedere Espressioni di r-value e l-value.
Microsoft FINALE specifico
È possibile convertire un'espressione per digitare void con un cast, ma l'espressione risultante può essere utilizzato solo in un valore non è obbligatorio.Un puntatore all'oggetto convertito in void * e del tipo originale restituirà il valore originale.