Warum ist hier ein Cast erforderlich?
-
char toUpper(char x) { return(x >= 'a' && x <= 'z' ? x - 'a' + 'A' : x); }
ich bekomme bei dieser Funktion eine Fehlermeldung, weil anscheinend der Rückgabetyp nicht kompatibel zu den Operanden des ?-Operators sein soll.
Das heißt: der Compiler zwingt mich dazu, einen Cast zu verwenden. Nur weiß ich nicht: wieso? Kann mir jemand dieses Verhalten des Compilers erklären?Vielen Dank im voraus!
-
Mit char kann nicht gerechnet werden, aber existiert eine implizite Umwandlung von char nach int. Deshalb kann der Ausdruck ausgewertet werden, hat aber dann den Typ int.
-
haette ich eigentlich wissen muessen...
Danke