C++: A char, wchar_t, short, bool, enum típusok kiértékeléskor MINDIG int-é konvertálódnak?
Namost, arról van szó, hogy itt van egy kifényképezett részlet a Programozzunk C++ nyelven c. könyvből:
Az első képen a lényeg a kép alján az 1.-es számmal jelölt passzus, ill. a második képen a tetején ennek folytatása, a 2.-es számmal jelölt passzus.
Ugye az egész azzal indít hogy vizsgáljuk az x op y kifejezések implicit konverzióit. Az első passzus leírja hogy a címben lévő 5 típus automatikusan int-é konvertálódik (vagy unsigned int-é).
Ahol az én problémám kezdődik, az az hogy a 2. passzusnál nézzük meg egyáltalán hogy a két típus eltérő-e.
A szövegből tehát nekem az jön le, amit a kérdésben fel is tettem, hogy ez az 5 típus MINDIG automatikusan int--é konvertálódik? (tehát NEM CSAK akkor amikor különböző típusú kifejezések vannak, hanem MINDIG).
Például:
unsigned char c1, c2;
c1 + c2;
Az értelmezésem szerint ezek is int-é fognak válni, de ennek semmi értelmét nem látom.
Ha viszont
int i;
unsigned char c;
i + c;
Akkor teljesen érthető hogy c int-é válik, nem ezzel van a bajom.
Tehát a kérdés: Helyes a fent leírt értelmezés, vagy rosszul értelmeztem?
Megköszönném ha segítenétek, üdv
"Ahol az én problémám kezdődik, az az hogy a 2. passzusnál nézzük meg egyáltalán hogy a két típus eltérő-e."
Tehát nemhogy nem olvastál utána, még a fényképezett részt se olvastad el?:D
"Ha az első lépés UTÁN a kifejezésben különböző típusok szerepelnek..."
Szóval a második "passzusnál" azt nézzük meg, hogy az első (integer promotion) eltérő típusokat adott-e.
DE, hogy választ is adjak: Igen, azonosnál is van integer promotion
(Útravaló a továbbiakra: Use the NET, padawan.)
Köszönöm a segítséged.
El fogom olvasni a linkeket, csak egy gyors kérdés: Ennek mi értelme hogy ez az 5 típus MINDIG int-é konvertálódik? Tehát miért?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!