void main muss sterben!!!!



  • Besser wäre es, void main() zu erlauben anstatt int main() ohne return zu erlauben. 🙄



  • ich finds gut so wie es jetzt ist. dann kann man nämlich schlechten code oder alten code schnell identifizieren. 😉



  • void main sollte zu einem Compilerfehler führen, damit die Leute lernen das auch ein "Hauptprogramm" eine Returnwert hat in dem es zumindest mitteilt ob es erfolgreich oder nicht erfolgreich beendet wurde.

    Sonst kann man solche Programme in keinen automatischen Prozessen oder spawn/fork Aufrufen sinnvoll nutzen.



  • PAD schrieb:

    void main sollte zu einem Compilerfehler führen, damit die Leute lernen das auch ein "Hauptprogramm" eine Returnwert hat in dem es zumindest mitteilt ob es erfolgreich oder nicht erfolgreich beendet wurde.

    Sonst kann man solche Programme in keinen automatischen Prozessen oder spawn/fork Aufrufen sinnvoll nutzen.

    aber wenn man int main() nimmt ist man auch nicht gezwungen was zu returnen. 😞



  • fuck schrieb:

    PAD schrieb:

    void main sollte zu einem Compilerfehler führen, damit die Leute lernen das auch ein "Hauptprogramm" eine Returnwert hat in dem es zumindest mitteilt ob es erfolgreich oder nicht erfolgreich beendet wurde.

    Sonst kann man solche Programme in keinen automatischen Prozessen oder spawn/fork Aufrufen sinnvoll nutzen.

    aber wenn man int main() nimmt ist man auch nicht gezwungen was zu returnen. 😞

    Muss man nach dem Standard auch nicht. Kein Return führt zu return 0.



  • Da wir hier im C++ Forum sind

    selbst MS VC 6.0 bringt, seine Vermutung über den Ergebnistyp ist leider wieder M$

    Kompilierung läuft...
    test2_1.cpp
    e:\litef\test\test2\test2_1.cpp(12) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
    

    Ich hoffe das andere Compiler nicht schlechter sind

    Unter einem C-Compiler führt es leider nicht immer zu einer warning



  • Warum sollte eine Warnung kommen wenn das laut Standard völlig legal ist?



  • Muss man nach dem Standard auch nicht. Kein Return führt zu return 0.

    void main sollte zum gleichen Ergebnis führen, dann kann man sich diese unendlichen Diskussionen sparen.

    MfG SideWinder



  • Hätt ja nicht gedacht, dass mir das auf meine alten Tage noch mal passiert, aber ich muss SideWinder 100% recht geben.



  • Hehe Side, solange es noch genug Leute gibt, die auf solche Diskussionen einsteigen 😉

    Die Animation jedenfalls ist hübsch.



  • irgendwas werden die schreiber des standarts sich schon dabei gedacht haben



  • SideWinder schrieb:

    Muss man nach dem Standard auch nicht. Kein Return führt zu return 0.

    void main sollte zum gleichen Ergebnis führen, dann kann man sich diese unendlichen Diskussionen sparen.

    MfG SideWinder

    Tjo ist eben so festgelegt dass es int main() heißt wie die Größe vom A4-Papier festgelegt ist. Man könnte es auch anderst machen, macht man aber nicht.



  • Optimizer schrieb:

    Besser wäre es, void main() zu erlauben anstatt int main() ohne return zu erlauben. 🙄

    👍
    ^^ganz meine meinung



  • Optimizer schrieb:

    Besser wäre es, void main() zu erlauben anstatt int main() ohne return zu erlauben. 🙄

    FULL ACK 😋



  • net schrieb:

    Optimizer schrieb:

    Besser wäre es, void main() zu erlauben anstatt int main() ohne return zu erlauben. 🙄

    👍
    ^^ganz meine meinung

    Void würde aber kein Sinn ergeben. Die Funktion main() gibt _immer_ einen Wert zurück....



  • FireFlow schrieb:

    Die Funktion main() gibt _immer_ einen Wert zurück....

    an wen?



  • an das betriebssystem



  • otze schrieb:

    an das betriebssystem

    und wenn ich keins habe? was soll ich z.b. mit einem rückgabewert von main anfangen, wenn main nie verlassen wird?



  • Wenn du eine Exe ausführst, bekommst du als Aufrufer einer solchen einen "Errorcode" zurück. So kannst du z.B. eine Batchdatei schreiben die je nach Errorcode reagieren kann.

    Und Errorcode 0 heißt immer "Alles i.O.". Und das gibt int main() ohne return-code auch immer zurück.



  • net schrieb:

    otze schrieb:

    an das betriebssystem

    und wenn ich keins habe? was soll ich z.b. mit einem rückgabewert von main anfangen, wenn main nie verlassen wird?

    Du hast ja immer irgendwie ein Stück Code, das main ausführt, oder? Ob du den Errorcode entgegen nimmst, ist nicht das Problem von ISO-Standard.


Anmelden zum Antworten