Warnung “implizite Deklaration der Funktion ‘strlen'” erhalten
Lesezeit: 2 Minuten
Joe.Z
Ich habe einen einfachen Code, aber ich erhalte eine Warnung:
-bash-3.2$ gcc -Wall print_process_environ.c -o p_p
print_process_environ.c: In function 'print_process_environ':
print_process_environ.c:24: warning: implicit declaration of function 'strlen'
print_process_environ.c:24: warning: incompatible implicit declaration of built-in function 'strlen'
Einschließlich strings.h zweimal ist nicht dasselbe wie einschließen string.h einmal…
– AnT steht zu Russland
4. November 2013 um 3:20 Uhr
Suchvir
es ist #include <string.h> . Du schreibst es in deinem Code falsch. Auch wenn Sie jemals diese Warnung in Ihrem Compiler erhalten … tun Sie dies immer man function_name auf dem Terminal, um den für diese Funktion erforderlichen Header anzuzeigen
#include <string.h> // correct header
#include <strings.h> // incorrect header - change this in your code to string.h
Wusste nichts von der man function_namewirklich gut zu wissen!
– Hut
28. Juni 2018 um 13:36 Uhr
Shafik Yaghmur
Sie wurden von einem leicht zu machenden Fehler gebissen, den Sie eingeschlossen haben Posix-Strings.h Header:
Dies sind alles nicht standardmäßige Funktionen. Dies erklärt auch das Fehlen von Fehlern. Es fällt mir jedoch schwer, eine gute Referenz zu finden BSD Systemversion von Saiten.h früher auch enthalten string.h.
Peter Chaula
Es stellte sich heraus, dass der Code war #include <stdlib.h> und meine Ausgabe war:
Lösung:
Geändert stdlib.h zu stdio.h und die Warnung war weg
Kurz gesagt, der Compiler versucht Ihnen mitzuteilen, dass er die Deklaration einer Funktion nicht finden konnte. Dies ergibt sich aus a). Keine Header-Datei enthalten b) falscher Header-Dateiname .eg” sring.h”
13689400cookie-checkWarnung “implizite Deklaration der Funktion ‘strlen'” erhaltenyes
Einschließlich
strings.h
zweimal ist nicht dasselbe wie einschließenstring.h
einmal…– AnT steht zu Russland
4. November 2013 um 3:20 Uhr