Warum braucht man für strlen die string.h nicht einzubinden?
-
Warum muss man nicht:
#include <string.h>
schreiben?
Man kann strlen auch ohne diese Einbindung benutzen.
(Bloodshed-Umgebung)
Grüße
Bimbambino
-
bimbambino schrieb:
(Bloodshed-Umgebung)
Reicht das
$ cat > ttt.c int main() { char *str = "blahblah"; return strlen(str); } $ gcc -o ttt ttt.c ttt.c: In Funktion »main«: ttt.c:4: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »strlen«
Also implizit aber die Funktion wird dann doch wieder in der Standard-lib gefunden und es läuft. Trotzdem unsauberer Stil.
-
-
Hmm.
Versteh ich nicht.Heißt das, es gibt einen Verweis in der stdio.h auf die anderen *.h
oder liegts an der Programmierumgebung?Grüße
Bimbambino
-
Es liegt an C selbst, das kennt nämlich implizite Deklarationen. Wenn du eine Funktion aufrufst, die noch nicht deklariert wurde, nimmt der Kompiler an, dass sie int zurückgibt und die passenden Parameter nimmt.
Wurde aber glaube ich in C99 abgeschafft (?).
Gruß
Don06