C++ Fragen & Antworten

  • Das wurde zwangsläufig aus dem C Standard übernommen und war da sogar pflicht. Hat man in der main Methode keinen return angegeben, dann hat der Compiler einen Fehler zurückgegeben.
    Im Grunde genommen schreibst du vor dem Main schon, was zurückgegeben wird.


    Die meisten Infos beziehe ich von dieser Seite: http://www.cplusplus.com/reference/

  • Das ist eine Art Fehlercode.
    Wird 0 zurückgesendet, heißt es "Alles in Ordnung", bei jeder anderen Zahl darf man annehmen, dass es sich um einen Fehler handelt.

  • Im Grunde musst du keinen return-Wert zurückgeben. Allerdings ist es Gang und Gebe seit C90 durch
    Feedback-Spezifische Rückgaben den Statuscode eines ausgeführten Programms zu erhalten.
    Gibst du nichts zurück, wird die Funktion automatisch den Wert 0 zurückliefern (Standard Fehler-Code bei eigentlich jedem Dist, deklariert als der EXIT_SUCCESS),
    so lange es den Funktionstyp int hat.


    Bin mir nicht sicher, es gibt aber jedoch auch Compiler die erlauben sogar den void-Typ für die main Methode, jedoch sollte
    man sich an sowas nicht gewöhnen. Lass es einfach fürs' Erste weg und später wirst du selbst merken, wann du warum sowas brauchst.

  • In C++ muss bei einer nicht-void Methode ein return stehen. main ist dabei eine Ausnahme. Dazu sagt der Standard:

    A return statement ([stmt.return]) in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling std::exit with the return value as the argument.
    If control flows off the end of the compound-statement of main, the effect is equivalent to a return with operand 0 (see also [except.handle]).

    Daher sind beide Codeteile identisch.


    Zitat

    Bin mir nicht sicher, es gibt aber jedoch auch Compiler die erlauben sogar den void-Typ für die main Methode, jedoch sollte
    man sich an sowas nicht gewöhnen. Lass es einfach fürs' Erste weg und später wirst du selbst merken, wann du warum sowas brauchst.

    Das war mal wieder Schwachsinn von Microsoft die meiten sich nicht an den Standard halten zu müssen. Mit den moderneren C++ Compilern ist das aber Geschichte.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!