Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Legal type casts
| 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.