Compilerwarnung :: Ich steh auf'm Schlauch
-
Das da
unsigned char foo(unsigned int a){ return (unsigned char)(a >> 3U); // <- Die Zeile }
bringt mir (bei maximalem Optimierungs- und Warnlevel) folgende Meldung:
Warning[000] D:\pfad\zu\datei.c 23 : conversion to shorter data type Warning[000] D:\pfad\zu\datei.c 23 : conversion to shorter data type
Steh ich auf'm Schlauf oder passiert hier was seltsames?
-
und was ist wenn du das 'U' entfernst?
-
Selbiges.
-
vielleicht ignoriert er den type-cast bei der höchsten warnstufe?
fummel doch mal damit rum. geh' mit dem warning level runter bis die warnung verschwindet. wenn du dann den type-cast rausnimmt, sollte das warning wieder erscheinen (dann hast die richtige warnstufe erwischt).
-
Nö, macht er nicht. Wenn ich den Cast entferne kommt eine weitere (dann ja logische) Warnung hinzu.
-
dann schick' dem toolhersteller 'ne mail. ist bestimmt ein bug, wenn er den cast einfach nicht haben will....
-
_den_ cast ignoriert er nicht (zumindest nicht ganz :P). Ihn scheint das (a >> 3) schon zu stören. Dummerweise hab ich den Compiler jetzt nicht zuhause und kann nicht testen was mit
unsigned int foo(unsigned int a){ return (a >> 3U); }
passieren würde.
-
ich würde auch mal das probieren:
unsigned char foo (unsigned int a) { return (unsigned char)a; }
ist das 'n PICC?
dann guck auch mal hier: http://www.htsoft.com/forum/all/showthreaded.php/Cat/0/Number/22458/page/0/vc/1
zumindest diese aussage: 'At -4 the warnings (752) are almost completely gratuitous and unusable.'
-
lol
Da muss ich mich ja nicht wundern wenn ich bei -9 Ärger bekomme
Edit: Thx net
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.