braunbär hat geschrieben:mse hat geschrieben:Durch implizite Typumwandlungen gibt es schwierig zu erkennende Fehler in Ausdrücken.
Mir fällt eigentlich kein Beispiel ein, in der die Umwandlung von einem schmäleren in einen "breiteren" Datentyp zu schwierig zu erkennenden Fehlern führt. Die Gegenrichtung ist auch jetzt entweder gar nicht implizit möglich (real->integer), passiert nie innerhalb der Berechnung von Ausdrücken, sondern nur bei Zuweisungen (da sollte sich der Programmierer aber wirklich im Klaren darüber sein, welchen Wert er welcher Variablen zuweist), oder löst, zumindest in Delphi, eine Compilerwarnung aus (z.B. integer -> Byte oder char -> ansichar)
Z.B. Bitmanipulationen mit Masken und shift. Da MSElang explizite Datengrössen bevorzugt (int8, int16, int32, int64, card8, card16..., string8, string16, string32, char8...) wäre es konsequent dies auch in Ausdrücken zu tun. Aber wie gesagt, ich muss noch mehr ausprobieren.