const int zu char mit warning?!
-
Entschuldigung für den etwas komischen Titel.
Ich hätte da mal eine Frage wie man folgende Fehlermeldung sinnvoll umgehen kann.
Nutze Windows2000 und Visual Studio 6.
So nun zum Code:char text[100];
text[0]=0xCD;Fehlermeldung:
warning C4305: '=' : Verkuerzung von 'const int' in 'char'
warning C4309: '=' : Verkuerzung eines konstanten WertesIch möchte in meine text Variable die aus Norton bekannten Rahmen Zeichen hinzufügen, was ja auch alles klappt. Nur das ich für jede Zeile die ich so mache eine Warnung bekomme. Irgendwann werden es wohl 100 werden und dann verweigert der compiler sein Dienst. Was kann/muss ich machen?
-
Das 0xCD wird halt als const int interpretiert.
Aber verloren dürfte eigentlich nichts gehen, weil das nur ein Byte ist.
Probier mal (char)0xCD
-
Das zu cast'en in char war mein erster misslungener Versuch
Juckt den compiler leider wenig. Sagt immernoch das es Falsch ist.
-
Bei
text[0] = (char)0xcd;
meckert er noch?
Dann bliebe dir noch:
text[0] = '\xcd';
-
@Frager
Du hast keine Fehlermeldungen, sondern Warnungen. Positiv ist dennoch, dass du sowas ernst nimmst. Macht leider nicht jeder.char kann nunmal signed oder unsigned sein, deshalb sind lediglich Werte von 0 bis 127 sichergestellt. Und idR ist char signed, dh 0xcd liegt dann ausserhalb des Bereiches. Ein
text[0] = (unsigned char) 0xcd;
sollte hier Abhilfe schaffen, schön ist es trotzdem nicht.
-
Danke für eure Hilfe!
Die Variantetext[0] = '\xcd';
gefällt mir am Besten.
Ja klar ist es keine Fehlermeldung, sonst würd es ja nicht fertig compilieren
Aber ich mag Warnings nicht. 0 errors und 0 warnings, dann ist es erst wirklich fertig
Wobei man solche Warnungen bestimmt auch einzeln unterdrücken kann. Irgendwie.
-
Sorry gibt logischerweise kein "edit", für nicht registrierte Benutzer.
Ein neues Thema möchte ich nicht exrta anlegenEine Warnung habe ich schon immer mit dabei:
LINK : warning LNK4089: Alle Verweise auf "ADVAPI32.dll" wurden durch /OPT:REF verworfenWas bedeutet das? Wie kann man das beseitigen?
~Visual Studio 6~
-
Frager schrieb:
Sorry gibt logischerweise kein "edit", für nicht registrierte Benutzer.
Ein neues Thema möchte ich nicht exrta anlegenEine Warnung habe ich schon immer mit dabei:
LINK : warning LNK4089: Alle Verweise auf "ADVAPI32.dll" wurden durch /OPT:REF verworfenWas bedeutet das? Wie kann man das beseitigen?
~Visual Studio 6~Ich vermute mal, dass du auf diese DLL verweist, aber keine Funktion daraus benutzt und somit der Verweis wegoptimiert wird.