Konwersje rzutowania typów
Możesz użyć rzutowania typów, aby jawnie konwertować typy.
Składnia
cast-expression:
wyrażenie jednoargumentowe( type-name ) cast-expression
type-name:
specifier-qualifier-list abstract-declarator opt
Type-name jest typem, a cast-expression jest wartością konwertowaną na ten typ.Wyrażenie o rzutowanym typie nie jest l-wartością.Cast-expression jest konwertowane, jakby było przypisane do zmiennej typu type-name.Reguły konwersji przypisań (opisane w Konwersje przypisań) dotyczą także rzutowania typów.Poniższa tabela pokazuje typy, które mogą być rzutowane na dowolny, podany typ.
Dozwolone rzutowanie typów
Typy docelowe |
Potencjalne źródła |
---|---|
Typy całkowite |
Dowolny typ całkowity lub zmiennoprzecinkowy albo wskaźnik do obiektu |
Liczba zmiennoprzecinkowa |
Dowolny typ arytmetyczny |
Wskaźnik do obiektu lub (void *) |
Dowolny typ całkowity, (void *), wskaźnik do obiektu lub wskaźnik do funkcji |
Wskaźniki do funkcji |
Dowolny typ całkowity, wskaźnik do obiektu lub wskaźnik do funkcji |
Struktura, unia lub tablica |
Brak |
Typ void |
Dowolny typ |
Dowolny identyfikator może być rzutowany na typ void.Jednakże, jeśli typ określony w wyrażeniu rzutowania typu nie jest void, to identyfikator rzutowany na ten typ nie może być wyrażeniem void.Dowolne wyrażenie może być rzutowane na typ void, ale wyrażenie typu void nie może być rzutowane na żaden inny typ.Na przykład, funkcja zwracająca typ void nie może rzutować zwracanego typu na inny typ.
Zauważ, że wyrażenie void * ma wskaźnik do typu void, a nie typ void.Jeśli obiekt jest rzutowany na typ void, wynikowe wyrażenie nie może być przypisane do żadnego elementu.Podobnie, obiekt o rzutowanym typie nie jest dopuszczalną l-wartością, więc żadne przypisanie nie może zostać wykonane do obiektu o rzutowanym typie.
Specyficzne dla firmy Microsoft
Rzutowanie typu nie może być wyrażeniem l-wartości tak długo, jak nie zmienia się rozmiar identyfikatora.Aby uzyskać informacje dotyczące wyrażeń l-wartościowych, zobacz Wyrażenia l-wartościowe i p-wartościowe.
KONIEC informacji specyficznych dla firmy Microsoft
Za pomocą rzutowania możesz konwertować wyrażenie na typ void, ale wyrażenie wynikowe może być używane tylko tam, gdzie nie jest wymagana wartość.Wskaźnik do obiektu skonwertowany na void * i z powrotem do oryginalnego typu zwróci swoją oryginalną wartość.