Převody přetypování
Pomocí přetypování typu lze explicitně převést typy.
Syntax
výraz-přetypování:
unární výraz( název-typu ) výraz-přetypování
název-typu:
seznam-kvalifikátorů-specifikátoru abstraktní-deklarátor volitelné
název-typu je typ a výraz-přetypování je hodnota, která se má na daný typ převést.Výraz s přetypováním typu není l-hodnota.výraz-přetypování je převeden, jako by byl přiřazen proměnné typu název-typu.Pravidla převodu pro přiřazení (uvedené v tématu Převody přiřazení) jsou při přetypování typu také použita.Následující tabulka uvádí typy, které lze převést na libovolný uvedený typ.
Možné přetypování typu
Cílové typy |
Potenciální zdroje |
---|---|
Celočíselné typy |
Jakýkoli celočíselný typ, typ s plovoucí desetinnou čárkou nebo ukazatel na objekt |
Číslo s plovoucí desetinnou čárkou |
Jakýkoli aritmetický typ |
Ukazatel na objekt nebo ukazatel (void *) |
Libovolný celočíselný typ, ukazatel (void *), ukazatel na objekt nebo ukazatel na funkci |
Ukazatel na funkci |
Libovolný celočíselný typ, ukazatel na objekt nebo ukazatel na funkci |
Struktura, sjednocení nebo pole |
Žádná |
Typ void |
Libovolný typy |
Jakýkoli identifikátor lze převést na typ void.Avšak pokud typ zadaný ve výrazu přetypování typu není typ void, pak identifikátor převedený na tento typ, nemůže být výraz void.Libovolný výraz lze převést na typ void, ale výraz typu void nelze převést na jiný typ.Například, funkce s návratovým typem void nemůže svou návratovou hodnotu přetypovat na jiný typ.
Všimněte si, že výraz void * obsahuje ukazatel na typ void, ne typ void samotný.Pokud je objekt přetypován na typ void, výsledný výraz nelze přiřadit do libovolné položky.Podobně, objekt přetypování typu není přijatelná l-hodnota, takže objektu přetypování typu nelze provést žádné přiřazení.
Specifické pro produkty společnosti Microsoft
Přetypování typu může být výraz l-hodnoty, dokud se velikost tohoto identifikátoru nezmění.Další informace o výrazech l-hodnot naleznete v tématu Výrazy L-hodnot a P-hodnot.
Specifické pro produkty společnosti Microsoft - konec
Výraz lze převést na typ void pomocí přetypování, ale výsledný výraz lze použít pouze tam, kde hodnota není vyžadována.Ukazatel na objekt převedený na void * a zpět na původní typ, vrátí svou původní hodnotu.