warning: pointer targets in initialisation differ in signedness
-
Superlexx schrieb:
(unabhängig davon sind char, signed char und unsigned char drei verschiedene Typen).
wenn das die antiken griechischen philosophen wüssten (die mit ihrem 'gesetz vom ausgeschlossenen dritten'), würden sie allesamt in ihren gräbern rotieren.
-
jaund was mach ich nu? das sind so viele warnungen das geh auffn sack!
-
signedness n00b schrieb:
jaund was mach ich nu?
[b]char[/b]* de[] = { "hallo und so, ne" };
-
+fricky schrieb:
[b]char[/b]* de[] = { "hallo und so, ne" };
[b]const char[/b]* de[] = { "hallo und so, ne" };
-
frage mich schon, wieso adressen negativ sind.
-
o0 schrieb:
frage mich schon, wieso adressen negativ sind.
sind sie ja nicht, aber das, worauf so'n pointer zeigt (z.b. char) kann negativ sein.
-
wenn ich das char* tu, dann fliegen mir funktionen wie isspace und co. bei manchen compilern um die ohren.
-
signedness n00b schrieb:
wenn ich das char* tu, dann fliegen mir funktionen wie isspace und co. bei manchen compilern um die ohren.
kann nicht sein. 'isspace' will 'nen 'int' haben, also geht auch char.
-
das sachmal microsoft, wenn ich
char c = 128; printf("%d",isspace(c));
kompilieren will, kommt die nette message box mit dem crashsound:
Debug Assertion Failed!
Expression: (unsigned)(c+1) <=256
-
bezieht sich auf die express version visualc++ 2008
-
^^ signed char geht doch nur von -128 bis 127. wahrscheinlich meckert er, weil 128 zu gross ist. im release-modus sollte 'isspace' aber jeden int-wert schlucken. oder haste <ctype.h> nicht inkludiert?
-
isspace kann mit deinen negativen Werten nichts anfangen und sagt es dir auf diese Weise.
-
Superlexx schrieb:
isspace kann mit deinen negativen Werten nichts anfangen und sagt es dir auf diese Weise.
ich hab' gerade (vs.2005, debug-mode) `printf("%d",isspace(-1));
gemacht. geht ohne probleme.
printf("%d",isspace(-2));` will aber nicht. wer ist jetzt doof, ich oder mickeysoft?
-
-1 == EOF
-
??????? schrieb:
-1 == EOF
ok, ich bin dööfer als microsoft. aber nur ein ganz kleines bisschen.
-
nützt mir ja alles nix. ich parse ne datei und wenn da son zeichen drin ist, dann machts KAA-BUMM
-
willsagen, die zeilen der datei stecken in char-strings!
-
Hi,
lassmal dein uchar und sag deinem Compiler, das er es als unsigned behandeln soll.
Der VC 08 kann das. Anjuta hat gcc unter sich? Der müsste das auch können, weiss aber grade nicht, wie der Compiler Switch heißt.Gruß,
B.B.
-
signedness n00b schrieb:
nützt mir ja alles nix. ich parse ne datei und wenn da son zeichen drin ist, dann machts KAA-BUMM
ja, das ist doof, blödes microsoft. mach doch einfach jeden wert & 0x7f, dann isses immer positiv und alle zeichen, die isspace() als 'space' erkennen könnte, bleiben erhalten.
-
+fricky schrieb:
signedness n00b schrieb:
nützt mir ja alles nix. ich parse ne datei und wenn da son zeichen drin ist, dann machts KAA-BUMM
ja, das ist doof, blödes microsoft. mach doch einfach jeden wert & 0x7f, dann isses immer positiv und alle zeichen, die isspace() als 'space' erkennen könnte, bleiben erhalten.
das wäre eine möglichkeit, aber son uchar typ ist doch eigentlich ganz toll und da ist die sache mit dem compiler-switch doch die einfachere variante.
danke und gruß,
s.n.