'main' must return 'init'
-
Hallo,
ich habe so ein bisschen mit meinem Neuen Debian system rumgespielt, und wollte da auch gleich anfangen mit Proggen. Auf meinem ubuntu hats ja geklappt mit den kleinen einsteigerprogrammen. Jetzt stellt sich mir jedoch folgende Frage:
warum gibt er mir beim compilieren der datei test.cpp mit g++ diese fehlermeldung aus?:
test.cpp:2: error: `main' must return `int'
Das ist die letzte und einizige Zeile, die mit diesem simplen quelltext geschrieben ist:void main()
{
}simpel is glaube ich dafür nimmer ma mehr ein Ausdruck. Er hat den gleichen fehler auch schon gehabt, als ich einen cout und die includes drinne hatte.
Was mache ich falsch, oder was ist mit meinem system nicht in Ordung?
Würde mich um schnelle antwort freuen.
Engelsblut
-
Die Fehlermeldung sagt doch alles. Ein anderer Rückgabetyp für main als int ist sowohl in C als auch in C++ illegal.
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=main#Answ
-
Die Fehlermeldung sagt doch eigentlich ganz genau, was los ist: Die Funktion main() ist vom Typ int, d. h. sie sollte mit 'return(0)' beendet werden!
Der Rückgabewert von main() wird dem Aufrufenden Prozess (normaler Weise die Shell) mitgeteilt und kann in der Shell mit "$?" abgefragt werden, Beispiel:
> ls gibt_es_nicht; echo $?
Normaler Weise ist der Rückgabewert 0, wenn das Programm "ordnungsgemäß" abgearbeitet wurde und 1, wenn ein Fehler aufgetreten ist.
Dadurch lässt sich beispielsweise in einem Shellscript verzweigen:cd /usr/include
if [ $? -neq 1 ]; then
echo "/usr/include nicht gefunden."
else
...
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
deutlicher ausgedrückt: du mußt main() mit rückgabetyp int deklarieren und mit return einen int-wert zurückgeben.
int main() { ... return 0; }
-
Konfusius: Steht bereits auf Humes FAQ-Seite, die kingruedi vorher verlinkt hat.
Und das "return 0;" ist weder nötig, noch für den Fehler verantwortlich.