hilfe beim ersten programm plzzzz



  • return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...



  • curious_husky schrieb:

    return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...

    wassn gelaber...



  • unskilled schrieb:

    curious_husky schrieb:

    return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...

    wassn gelaber...

    😃

    @metallicaan: Zum Thema "CRT statisch linken" (das ist dein Problem, falls auf dem Zielrechner deine Release-exe Fehler wie "Anwendungskonfiguration nicht korrekt" oder was ähnliches erzeugt) gibt es hier einen schönen Link, der alle Unklarheiten beseitigen dürfte:

    http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/

    Ansonsten wäre eine Fehlerbeschreibung natürlich hilfreich, wie schon gesagt wurde.

    EDIT: Ach ja, ich hätte schon mal einen Blick auf dein Bild werfen können. Notitz für mich: erst alles lesen, dann antworten... 🤡



  • curious_husky schrieb:

    return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...

    Das hat nichts mit eleganter zu tun, sondern nach C++ Standart muss ein int zurückgegeben werden. Bei C war void völlig in Ordnung, bei C++ nicht.

    Mir wäre allerdings neu, wenn ein using global sein muss. AFAIK darf dies durchaus lokal erfolgen.



  • inter2k3 schrieb:

    curious_husky schrieb:

    return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...

    Das hat nichts mit eleganter zu tun, sondern nach C++ stan**** muss ein int zurückgegeben werden. Bei C war void völlig in Ordnung, bei C++ nicht.

    Mir wäre allerdings neu, wenn ein using global sein muss. AFAIK darf dies durchaus lokal erfolgen.

    Ich dachte nach C++ Standard muss nicht explizit ein return in main() gemacht werden. Dachte immer das es hier eine Ausnahme gibt.



  • inter2k3 schrieb:

    curious_husky schrieb:

    return 0; ist nicht zwingend notwendig, aber doch "elegenter", wenn man main bereits mit Rückgabewert "int" deklariert...

    Das hat nichts mit eleganter zu tun, sondern nach C++ stan**** muss ein int zurückgegeben werden. Bei C war void völlig in Ordnung, bei C++ nicht.

    Mir wäre allerdings neu, wenn ein using global sein muss. AFAIK darf dies durchaus lokal erfolgen.

    Er meinte nicht, dass int als Rückgabewert eleganter ist, sondern das "return 0" am Ende. Ich kann da aber keinen Eleganz-Mehrwert ausmachen... 😉

    P.S.: Du weißt schon, wie man Standard schreibt? 😃


  • Mod

    ReturnPflicht schrieb:

    Ich dachte nach C++ Standard muss nicht explizit ein return in main() gemacht werden. Dachte immer das es hier eine Ausnahme gibt.

    Korrekt:

    C++ Standard 3.6.1,5 schrieb:

    A return statement 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 reaches the end of main without encountering a return statement, the effect is that of executing
    `return 0;

    `



  • Gnarf - genauer lesen hilft manchmal. Habe übersehen, dass sich die Aussage nur auf das return-statement bezieht und nicht auf den return-Typ des function-headers. 😃



  • inter2k3 schrieb:

    Mir wäre allerdings neu, wenn ein using global sein muss. AFAIK darf dies durchaus lokal erfolgen.

    Stimmt. Macht ja auch nur Sinn, wenn es verschiedene Namespaces gibt. Hab ich vergessen, sry. 😕

    _matze schrieb:

    Er meinte nicht, dass int als Rückgabewert eleganter ist, sondern das "return 0" am Ende. Ich kann da aber keinen Eleganz-Mehrwert ausmachen... 😉

    Genau das mein ich 🙂 (Ich glaub ich muss lernen mich besser zu artikulieren 😃 )
    Einen Mehrwert erschliesse ich mir damit auch nicht, aber mein Lehrer hat das gesagt xD. Und wenn von der Logik und Funktion nichts dagegenspricht... 😉


  • Mod

    curious_husky schrieb:

    inter2k3 schrieb:

    Mir wäre allerdings neu, wenn ein using global sein muss. AFAIK darf dies durchaus lokal erfolgen.

    Stimmt. Macht ja auch nur Sinn, wenn es verschiedene Namespaces gibt. Hab ich vergessen, sry. 😕

    Ich habe mal nachgeschlagen: Erlaubt ist es in anderen Namespaces (logisch), im Blockscope (also in Funktionen), global (auch logisch), aber nicht in Klassendeklarationen.



  • curious_husky schrieb:

    _matze schrieb:

    Er meinte nicht, dass int als Rückgabewert eleganter ist, sondern das "return 0" am Ende. Ich kann da aber keinen Eleganz-Mehrwert ausmachen... 😉

    Genau das mein ich 🙂 (Ich glaub ich muss lernen mich besser zu artikulieren 😃 )
    Einen Mehrwert erschliesse ich mir damit auch nicht, aber mein Lehrer hat das gesagt xD. Und wenn von der Logik und Funktion nichts dagegenspricht... 😉

    das hat noch lang nichts mit eleganz zu tun. dafür aber sehr wohl etwas mit überflüssigkeit...

    int main()
    {}
    

    ist nun mal definiertes C++.
    Wenn dir so sein sollte, kannst du das return 0 oder was auch immer auch mit reinschreiben - das macht es aber nicht zu besserem C++.

    bb



  • Wie kann man eigentlich jahrelang über die Signatur von main labern?

    Zum Glück bin ich auf C# umgestiegen, da gibt es wenigstens Fortschritte.


Anmelden zum Antworten