Freigeben über


Type-Cast Konvertierungen

Sie können Typ casts verwenden, um Typen explizit zu konvertieren.

Syntax

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

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

Dies type-name ist ein Typ und cast-expression ein Wert, der in diesen Typ konvertiert werden soll. Ein Ausdruck mit einem Typ cast ist kein l-Wert. Die cast-expression Konvertierung erfolgt so, als ob sie einer Variablen vom Typ type-namezugewiesen wurde. Die Konvertierungsregeln für Zuordnungen (in Zuordnungskonvertierungen beschrieben) gelten auch für Typumwandlungen. In der folgenden Tabelle sind die Typen aufgeführt, die in einen beliebigen Typ umwandeln können.

Zieltypen Mögliche Quellen
Ganzzahlige Typen Beliebiger ganzzahliger Typ oder Gleitkommatyp oder Zeiger auf ein Objekt
Gleitkomma Beliebiger arithmetischer Typ
Ein Zeiger auf ein Objekt oder void * Beliebiger ganzzahliger Typ, void *ein Zeiger auf ein Objekt oder einen Funktionszeiger
Funktionszeiger Jeder integrale Typ, ein Zeiger auf ein Objekt oder ein Funktionszeiger
Struktur, Vereinigung oder Matrix Nichts
Void-Typ Beliebiger Typ

Jeder Bezeichner kann in void den Typ umformt werden. Wenn der in einem Type-Cast-Ausdruck angegebene Typ jedoch nicht voidist, kann der Bezeichner, der in diesen Typ umgeformt wird, kein Ausdruck sein void . Jeder Ausdruck kann in voideinen anderen Typ umgegossen werden, aber ein Typausdruck void kann nicht in einen anderen Typ umgegossen werden. Eine Funktion mit void Rückgabetyp kann z. B. nicht in einen anderen Typ umwandeln.

Ein void * Ausdruck hat einen Typzeiger auf void, nicht typ void. Wenn ein Objekt in void den Typ umgeschrieben wird, kann der resultierende Ausdruck keinem Element zugewiesen werden. Ebenso ist ein Type-Cast-Objekt kein akzeptabler l-Wert, sodass keine Zuordnung zu einem Typ-Cast-Objekt erfolgen kann.

Microsoft Specific

Ein Typwechsel kann ein l-Wert-Ausdruck sein, solange sich die Größe des Bezeichners nicht ändert. Informationen zu L-Wert-Ausdrücken finden Sie unter L-Value- und R-Value-Ausdrücke.

Ende Microsoft-spezifisch

Sie können einen Ausdruck in einen Typ void mit einer Umwandlung konvertieren, der resultierende Ausdruck kann jedoch nur verwendet werden, wenn kein Wert erforderlich ist. Ein in und zurück in den ursprünglichen Typ konvertierter void * Objektzeiger kehrt zum ursprünglichen Wert zurück.

Siehe auch

Typkonvertierungen