warning: implicit declaration of function `...'
-
Ich bekomme die Warnungen:
warning: implicit declaration of function
memcpy' warning: implicit declaration of function
memset'
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