Typumwandlungskonvertierungen
Typumwandlungen können Sie verwenden, um Typen explizit zu konvertieren.
Syntax
Umwandlungsausdruck:
unärer Ausdruck( Typnamen ) Umwandlungsausdruck
Typname:
Spezifizierer-QualifiziererListe abstrakter Deklarator opt
Der Typname ist ein Typ und Umwandlungsausdruck ist ein in diesen Typ konvertiert zu verwendende Wert.Ein Ausdruck mit einer Typumwandlung ist kein l-Wert dar.Der Umwandlungsausdruck konvertiert wird, als wäre er auf eine Variable des Typs für den Typnamen einerzugewiesen worden wäre.Die Konvertierungsregeln für die Zuweisungen (erläutert in Zuweisungs-Konvertierungengelten auch für Typumwandlungen).In der folgenden Tabelle werden die Typen an, die zu einem beliebigen angegebenen Typ umgewandelt werden können.
Gültige Typumwandlungen
Zieltyp |
Mögliche Quellen |
---|---|
Ganzzahlige Typen |
Ein beliebiger ganzzahliger Typ oder Gleitkommatyp oder Zeiger auf ein Objekt |
float |
Ein arithmetischer Typ |
Ein Zeiger auf ein Objekt oder (void *) |
Ein beliebiger ganzzahliger Typ (void *), ein Zeiger auf ein Objekt oder einen Funktionszeiger |
Funktionszeiger |
Ein beliebiger ganzzahliger Typ, ein Zeiger auf ein Objekt oder einen Funktionszeiger |
Eine Struktur, Union oder ein Array |
None |
Ungültiger Typ |
Beliebiger Typ |
Jeder Bezeichner kann void-Typ umgewandelt werden.Wenn jedoch der Typ, der in einem Ausdruck Typumwandlungs nicht angegeben ist, voidist, gibt der Bezeichner, der auf diesen Typ nicht mit dem kann ein umgewandelt wird, void Ausdruck.Jeder Ausdruck kann voidumgewandelt werden, sondern ein Ausdruck vom Typ void kann nicht in einen beliebigen anderen Typ umgewandelt werden.Beispielsweise kann eine Funktion mit void Rückgabetyp die Rückgabe umwandlung nicht in einen anderen Typ aufweisen.
Beachten Sie, dass ein void * Ausdruck hat einen Typ pointer zu void, nicht Typ void.Wenn ein Objekt in void-Typ umgewandelt wird, kann der resultierende Ausdruck nicht zu einem Element zugewiesen werden.Ebenso ist ein Typumwandlungs Objekt kein zulässiger l-Wert, sodass keine Zuweisung zu einem Typumwandlungs Objekt durchgeführt werden.
Microsoft-spezifisch
Eine Typumwandlung kann ein L-Werts-Ausdruck handeln, solange die Größe des Bezeichners nicht ändert.Weitere Informationen über L-Werts-Ausdrücke finden Sie unter L-Werts-und R-Werts-Ausdrücke.
Microsoft ENDES bestimmten
Sie können einen Ausdruck void konvertieren, um mit einer Typumwandlung einzugeben, aber der sich ergebende Ausdruck kann nur verwendet werden, wo ein Wert nicht erforderlich ist.Ein Objektzeiger, der void * und zurück in den ursprünglichen Typ konvertiert wird auf den ursprünglichen Wert zurück.