warning: implicit declaration of function `...'



  • Ich bekomme die Warnungen:

    warning: implicit declaration of function memcpy' warning: implicit declaration of functionmemset'
    warning: implicit declaration of function `strerror'

    Aber alles funktioniert einwandfrei. Ich will sie aber nicht mehr. Was kann ich dagegen tun, ohne die Compilermeldungen zu ignorieren? -Wno...



  • Mal in die Manualpages schauen und daraufhin die nötigen includes einbinden? 😉



  • Und welche includes sollen dafür nötig sein? Die Funktionen funktionieren ja so wie sie sollen 😉
    Fehlt da vielleicht sowas wie ein Prototyp?



  • pyjamaboy schrieb:

    Fehlt da vielleicht sowas wie ein Prototyp?

    Woe findet man die Prototypen? Richtig, in den Headern. Also würde ich "Mal in die Manualpages schauen und daraufhin die nötigen includes einbinden".



  • pyjamaboy schrieb:

    Fehlt da vielleicht sowas wie ein Prototyp?

    Genau die fehlen. C ist so freundlich, zu jeder unbekannten Funktion eine "implizite Deklaration" int func_name(); zu erzeugen (Rückgabewert int, beliebige Parameter). Das Problem ist, daß der Compiler mit so einem Prototyp nicht mehr viel überprüfen kann - der würde es auch schlucken, wenn du memcpy() mit zwei Parametern aufrufen würdest (was dann zur Laufzeit passiert, will ich lieber nicht wissen :D). Deshalb gibt man den Funktionen besser einen vernünftigen Prototyp mit - wenn du die <string.h> einbindest, kann der Compiler feststellen, daß du für memcpy() drei Parameter benötigst.



  • Super, mit string.h klappts und mit den Prototypen sowieso... 😉



  • @LordJaxom: Siehst du, man muß es den Leuten nur ausführlich genug erklären, dann hören sie auch 😃

    @pyjamaboy: Und woher weiß ich, daß <string.h> der richtige Header war? Genau das steht in den Manual-Pages 😉
    (OK, ich geb zu, ich hab' gemogelt - mit etwas Erfahrung muß man nicht mehr nachsehen, weil man die wichtigsten Standardheader auswendig kennt ;))



  • CStoll schrieb:

    @LordJaxom: Siehst du, man muß es den Leuten nur ausführlich genug erklären, dann hören sie auch 😃

    Mit der Gefahr, dass er bei printf, time oder isdigit wieder fragt 😉


Anmelden zum Antworten