Absender: Timo Sandmann
Datum: Fr, 02.10.2009 16:53:08
In-reply-to:
<353D6CE3-2406-478A-B7A4-53AF34599803@xxxxxxxxxxxxxxx>
References:
<DAC13A23-985E-4435-B0F0-69B65A67563B@xxxxxxxxxxxxxxx> <353D6CE3-2406-478A-B7A4-53AF34599803@xxxxxxxxxxxxxxx>
Hallo, sollte jetzt besser sein mit den Warnings. Gruß, Timo Am 01.10.2009 um 17:49 schrieb Timo Sandmann:
Nur zur Info, falls das Thema noch jemanden interessiert. Anfang der weitergeleiteten E-Mail:Von: Timo Sandmann Datum: 1. Oktober 2009 17:47:29 MESZ An: Frank Menzel Betreff: Re: Galileo Hi Frank, Am 01.10.2009 um 07:01 schrieb Frank Menzel:nach dem Auschecken hängt er sich nun nicht mehr auf und übersetzt einen lauffähigen Debug-32 Code. Jedoch spuckt er beim Übersetzen massenhaft Warnungen aus in derConsole, anbei mal ein Ausschnitt.das liegt daran, dass ich mehr Warnings bei den Compilereinstellungen aktiviert habe, weil mir immer mal wieder ein paar Bugs aufgefallen sind, die mit automatischen Datentypkonvertierungen zusammenhingen. Außerdem gab es z.B. im avoid_col-behaviour mal if-Zweige, die niemals ausgeführt wurden - so etwas ist nicht unbedingt ein Bug, aber vermutlich nicht das, was der Programmierer eigentlich haben wollte, daher wird auch in solchen Situationen ein Warning ausgegeben.Ob die Warnings aktiviert sind oder nicht, ändert jedoch nichts an dem Code, den der Compiler produziert, von daher sollte das erstmal nicht weiter stören. Sieh es am besten als ToDo-Punkte an, wo der Compiler sagt "Hier habe ich etwas automatisch angepasst, am besten noch mal von Hand überprüfen, ob das auch wirklich so gewünscht war."Wobei der Ausschnitt hier Warnings angibt, die ich unter nicht- Windows noch nie gesehen habe, das muss ich mir bei Gelegenheit mal genauer anschauen.Irgendwie alles Dinge, die für MCU gedacht sind oder?Grundsätzlich betrifft das nicht nur MCU, weil wir den selben Code ja für MCU und PC verwenden und auch auf MCU und PC dasselbe Verhalten haben möchten. Auf MCU tritt allerdings öfter das Problem eines Überlaufs bei automatischen Konvertierungen auf, weil eine Konstante dort nur 16 Bit breit ist, viele Datentypen außerdem nur 8 Bit und Werte von 65535 oder 255 werden eben auch relativ schnell erreicht. Ähnliche Probleme bekommt man, wenn der Code auf 32 Bit und 64 Bit PCs laufen soll, aber Werte größer als z.B. 4.294.967.295 treten (im Bot-Code) einfach nicht so häufig auf.Fazit: Mach dir um die Warnings jetzt keine Gedanken, die gab's schon immer, nur wurden sie früher nicht angezeigt. Wünschenswert wäre allerdings, dass neuer Code von vornherein keine Warnings produziert. Beim Bestehenden ist das dann hoffentlich bald auch der Fall.Gruß, Timo