Typumwandlungskonvertierungen

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

Syntax

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

type-name:
specifier-qualifier-list abstract-declaratoropt

Der type-name ist ein Typ, und cast-expression ist ein Wert, der in diesen Typ konvertiert werden soll. Ein Ausdruck mit einer Typumwandlung ist kein L-Wert. cast-expression wird wie bei einer Zuweisung zu einer Variablen des Typs type-name konvertiert. Die Konvertierungsregeln für Zuweisungen (unter Zuweisungskonvertierungen beschrieben) gelten auch für Typumwandlungen. Die folgende Tabelle zeigt die Typen, die in jeden Typ umgewandelt werden können.

Zieltypen Mögliche Quellen
Ganzzahlige Typen Ein beliebiger ganzzahliger Typ oder Gleitkommatyp oder Zeiger auf ein Objekt
Gleitkomma Beliebiger arithmetischer Typ
Ein Zeiger auf ein Objekt oder void * Ein beliebiger ganzzahliger Typ, void *, ein Zeiger auf ein Objekt oder ein Funktionszeiger
Funktionszeiger Ein beliebiger ganzzahliger Typ, ein Zeiger auf ein Objekt oder einen Funktionszeiger
Eine Struktur, Union oder ein Array Keine
void-Typ Beliebiger Typ

Jeder Bezeichner kann in den void-Typ umgewandelt werden. Wenn jedoch der Typ, der in einem Typumwandlungsausdruck angegeben ist, nicht void ist, kann der Bezeichner, der in diesen Typ umgewandelt wird, kein void-Ausdruck sein. Jeder Ausdruck kann in void umgewandelt werden, aber ein Ausdruck vom Typ void kann nicht in einen anderen Typ umgewandelt werden. Beispielsweise kann die Rückgabe einer Funktion mit dem Rückgabetyp void nicht in einen anderen Typ umgewandelt werden.

Ein void *-Ausdruck weist einen Typzeiger auf void und nicht den Typ void auf. Wenn ein Objekt in einen void-Typ umgewandelt wird, kann der resultierende Ausdruck keinem Element zugewiesen werden. Ebenso ist ein Typumwandlungsobjekt kein zulässiger L-Wert, sodass keine Zuweisung zu einem Typumwandlungsobjekt durchgeführt werden kann.

Microsoft-spezifisch

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

Ende Microsoft-spezifisch

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

Siehe auch

Typkonvertierungen