Freigeben über


Typumwandlungskonvertierungen

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

Syntax

  • Umwandlungsausdruck:
    unärer Ausdruck

    ( type-name ) cast-expression

  • type-name:
    specifier-qualifier-list abstract-declarator opt

type-name ist ein Typ, und cast-expression ist ein Wert, der in diesen Typ konvertiert wird. 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.

Gültige Typumwandlungen

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 einen 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.

Beachten Sie, dass ein void *-Ausdruck einen Typzeiger auf void, nicht den Typ void aufweist. 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.

END 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

Konzepte

Typkonvertierungen (C)