Wieso gibt es kein Warning bei abs((int32_t) li[i])? Weil gcc-builtin? Problem: Vergleich funktionierte nicht, weil ich ein int32_t mit abs() benutze. http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#gdb8c83badc195efc1229799391fececc labs() gefunden: http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ge017047d6d0a688ccb622ff062dcd230 fabs gibt's auch..
Adam schrieb: > Wieso gibt es kein Warning bei abs((int32_t) li[i])? Weil gcc-builtin? Vielleicht weil die betreffende Warnung in der gcc Kommandozeile per Option (1) ausgeschaltet ist. Oder weil der Hersteller deiner Toolchain die betreffende Option zur Unterdrückung der Warnung mit einkompiliert hat. Dem kannst du nachgehen, wenn du dir die übergebenen Kommandozeilen anzeigen lässt (2). (1) http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html Hier speziell die -Wconversion Option "Warn for implicit conversions that may alter a value. This includes conversions ... to smaller types ..." und die -Wtraditional-conversion "Warn if a prototype causes a type conversion that is different from what would happen to the same argument in the absence of a prototype. This includes conversions ... changing the width or signedness of a fixed point argument except when the same as the default promotion." (2) http://www.network-theory.co.uk/docs/gccintro/gccintro_75.html -v Option (v für verbose)
Mhh, danke. Wird eigentlch nicht ausgeschaltet, -Wall ist Option der Wahl. >avr-gcc -v Using built-in specs. Target: avr Configured with: ../gcc-4.3.3/configure --enable-win32-registry=WinAVR-20100110 --with-gmp=/usr/local --with-mpfr=/usr/local --prefix=/c/Win AVR --target=avr --enable-languages=c,c++,objc --with-dwarf2 --enable-doc --disable-shared --disable-libada --disable-libssp --disable-nls - -with-pkgversion='WinAVR 20100110' --with-bugurl='URL:http://sourceforge.net/tracker/?atid=520074&group_id=68108&func=browse'; Thread model: single gcc version 4.3.3 (WinAVR 20100110) Aber das Problem ist ja nun entdeckt und behoben (dank Warnung in einer anderen Funktion), daher lohnt es sich für mich nicht, das Verhalten mal in einem "testcase" zu reproduzieren. Aber wieder ein paar Schalter kennengelernt :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.