warning: implicitly declaring function to return int
-
Hallo Leute,
ich mal wieder mit einem kleinen Problem.
bei meinem Quellcode bekommen ich die oben genannte Warnung, ich weis es isit nur eine Warnung, aber totzdem möchte ich wissen, was diese bedeutet.
Sie kommt bei einem ganznormalen Aufruf einer Funktion, die folgendermaßen als Prototyp aufgebaut ist:
void xyz (int, int)Danke für euere Hilfe...
-
Wurde die Funktion mit "int xyz (int, int);" deklariert ?
Übrigens gehört das Problem nach ANSI-C ... (Hat nichts mit Unix zu tun)
-
sorry aber erstes ist es eine void funktion, ohne rückgabewert
und zweites habe ich das problem nur unter unix, windows meldet dazu nichts...bei letzten mal bin ich im ansi c blöd angemacht worden, soetwas wären ein unix problem und sollte auch ins unixforum...
dazu aber auch gleich noch ne weitere frage, was ist eigentlich der unterschied zwsichen dem cc und gcc compiler bei unix/linux ???
den die warnung kommt auch nur bei verwenden des cc compilers...
-
Vermutlich hast du die Funktion nach ihrem Aufruf definiert:
int main() { ... xyz(a, b); ... return(0); } void xyz(int a, int b) { ... return; }
Der Compiler geht dann beim ersten Aufruf davon aus, dass die Funktion vom Typ int ist.
Martin
-
bin ich im ansi c blöd angemacht worden
LOL! Ich wollte dich nicht "blöde anmachen". Wenn du nach einem Unterschied
zwischen zwei (Unix-)Compiler fragst, kommt das ins Unix-Forum. Wenn du ein
Standard-C Problem hast, gehört das auch in das ANSI-C Forum...was ist eigentlich der unterschied zwsichen dem cc und gcc compiler bei unix/linux ???
der gcc ist die GNU Version. Was unter Linux cc ist (Link auf gcc?) weiss ich
ned, aber unter Solaris ist es der C-Compiler von Sun.aber erstes ist es eine void funktion, ohne rückgabewert
und zweites habe ich das problem nur unter unix, windows meldet dazu nichts...Windoof hat gar nichts zu melden.. wenn schon dann der Compiler unter Windoof..
Und Warnungen sind auf jeden Fall compilerabhängig.
Ich habe ausserdem nicht behauptet, dass du KEINE void Funktion hast.
Aber vielleicht hast du eine int DEKLARATION (Bekanntmachung) der Funktion...
-
Der Dev-C++ bringt in diesem Fall (von Martin geschildert)
tatsächlich diese Meldung, aber als Error, nicht als Warnung![Schrott]
[ Dieser Beitrag wurde am 11.12.2002 um 18:03 Uhr von Solaris'dUKe editiert. ]
-
ich verschieb das mal in das ANSI C Forum.
Der CC Compiler ist idr. der C Compiler des OS, da die meisten Unix Implementierer eigene C Compiler haben
-
Der DevC++ gibt einen Fehler aus, wenn die Datei als C++-Programm compiliert werden soll. In C++ herrscht Prototypenpflicht.
Wenn der Quelltext als *.c Datei übersetzt wird, dann wird bei fehlendem Prototyp eine Warnung ausgegeben und als Prototyp eine Funktion angenommen, die einen int zurückliefert und eine 'leere' -> '()' Parameterliste erwartet. Somit kann man die Funktion auch mit bel. Parametern aufrufen.