Komische Warnung ...
-
BartS schrieb:
das heißt, der fehler liegt bei MS?
strlen() liefert int und nicht size_t (in C verwendet man oft int statt size_t)
deshalb ist die Warnung korrekt, kann aber ignoriert werden, weil du weißt, dass strlen() nur Werte größer gleich 0 liefern kann (eine negative länge gibt es nicht). uU einen cast einfügen, dann meckert der compiler nicht mehr. (allerdings den hack kommentieren)Mit s.size() hast du das problem übrigens nicht.
-
@Shade
strlen() liefert int und nicht size_t
komischerweise steht bei mir in der msdn auch size_t und nicht int...
Auszug aus der MSDN
size_t strlen( const char *string );
-
Shade Of Mine schrieb:
strlen() liefert int und nicht size_t Mit s.size() hast du das problem übrigens nicht.
vertraust du Kernighan && Ritchie ?
http://www.fh-fulda.de/~klingebiel/c-stdlib/string.htm#s_strlen//edit
The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
http://www.opengroup.org/onlinepubs/009695399/functions/strlen.html
-
ssm schrieb:
Tatsächlich. Mein Fehler.
strlen liefert wirklich size_tsorry.
-
Welcher Compiler?
VC 7.1 liefert keine Warnung bei /W4
-
peterchen schrieb:
Welcher Compiler?
VC 7.1 liefert keine Warnung bei /W4Vielleicht muss man die 64-Bit Warnungen anschalten.
-
/Wp64 ist auch an.
-
Wenn strlen wirklich size_t liefer ist ja auch klar das keine Warnung kommt.
-
In den CRT-Headern (VC6 und 7) steht auch size_t
deswegen frag ich ja - welcher compiler?
-
vielleicht visual c++ 1, 2, 3, 4 oder 5