Primzahl Programm stuertzt direkt nach eingabe von Zahlenbegrenzung ab.



  • Jo, der Compiler ersetzt das vermutlich durch int main().



  • ok...dann wird das halt falsch an der FH unterrichtet und die 4 Bücher, die ich hier hab wissens auch nicht besser

    Na siehste. Wieviel so ein Besuch in diesem Forum einem doch bringt. Und wenn du immer noch an der Richtigkeit meiner Aussage zweifelst, dann schau doch einfach im Standard im Abschnitt 3.6.1 Main function nach.

    du...mein Kompiler meldet hier Division durch Null...irgendwo wird in deinem Code Division durch Null durchgeführt

    Sowas. Und alle Leute die sich Zeit nehmen und das Lesen erlernen, finden in einem meiner Beiträge auch einen konkreten Hinweis.

    Allerdings scheinen die meisten Compiler mit void zufrieden zu sein und ich tendiere auch dazu.

    Na wenn du dazu tendierst, dann sollten die vom Standardkomitee wohl unbedingt noch mal drüber nachdenken. Vielleicht wird void main dann ja schon in den neuen Standard aufgenommen. Das wäre doch toll, oder?
    Und bis dahin ignorierst du einfach die Leute mit ordentlichen Compilern. Was soll's? Hauptsache dein Code läuft bei dir.



  • Optimizer schrieb:

    Jo, der Compiler ersetzt das vermutlich durch int main().

    Der von Microsoft spuckt da ein dickes Error raus:

    d:\studium\Prog1\Test\main.cpp(43): error C2562: 'main' : 'void'-Funktion gibt einen Wert zurück

    muss höhstens so lauten:

    int main()
    {
      return 0;
    }
    


  • HumeSikkins schrieb:

    ok...dann wird das halt falsch an der FH unterrichtet und die 4 Bücher, die ich hier hab wissens auch nicht besser

    Na siehste. Wieviel so ein Besuch in diesem Forum einem doch bringt. Und wenn du immer noch an der Richtigkeit meiner Aussage zweifelst, dann schau doch einfach im Standard im Abschnitt 3.6.1 Main function nach.

    Ich hab deine Aussage ja nicht bezweifelt aber bei einer Funktion, bei der der Typ mit void deklariert wird kann es wohl keinen Rückgabewert geben.

    du...mein Kompiler meldet hier Division durch Null...irgendwo wird in deinem Code Division durch Null durchgeführt

    Sowas. Und alle Leute die sich Zeit nehmen und das Lesen erlernen, finden in einem meiner Beiträge auch einen konkreten Hinweis.

    Da warst du wohl einen Tick schneller...passiert halt oder, kein Grund so Bissig zu reagieren.

    Allerdings scheinen die meisten Compiler mit void zufrieden zu sein und ich tendiere auch dazu.

    Na wenn du dazu tendierst, dann sollten die vom Standardkomitee wohl unbedingt noch mal drüber nachdenken. Vielleicht wird void main dann ja schon in den neuen Standard aufgenommen. Das wäre doch toll, oder?
    Und bis dahin ignorierst du einfach die Leute mit ordentlichen Compilern. Was soll's? Hauptsache dein Code läuft bei dir.

    Es kann ja gut sein das das der Standard ist, es gibt aber genug Compiler bei denen void funktioniert. Und was verstehst du unter ordentlichen Compiler?



  • Online schrieb:

    Optimizer schrieb:

    Jo, der Compiler ersetzt das vermutlich durch int main().

    Der von Microsoft spuckt da ein dickes Error raus:

    d:\studium\Prog1\Test\main.cpp(43): error C2562: 'main' : 'void'-Funktion gibt einen Wert zurück

    muss höhstens so lauten:

    int main()
    {
      return 0;
    }
    

    Jo lol, wenn du void main() sagst, dann darfst du natürlich nicht return 0 schreiben.



  • HumeSikkins schrieb:

    2. main muss laut Standard kein explizites return-Statement enthalten. In diesem Fall wird implizit 0 zurückgeliefert.

    also wenn ich:

    int main() {}
    

    schreiben, sagt mein microsoft-compiler:

    warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen

    das bedeutet doch, dass nich "implitit 0" zurückgegeben wurde, oder ?



  • Optimizer schrieb:

    Online schrieb:

    Optimizer schrieb:

    Jo, der Compiler ersetzt das vermutlich durch int main().

    Der von Microsoft spuckt da ein dickes Error raus:

    d:\studium\Prog1\Test\main.cpp(43): error C2562: 'main' : 'void'-Funktion gibt einen Wert zurück

    muss höhstens so lauten:

    int main()
    {
      return 0;
    }
    

    Jo lol, wenn du void main() sagst, dann darfst du natürlich nicht return 0 schreiben.

    das ist es ja auch...jeder redet hier über return 0 dabei hat die Funktion main bei ihm den Datentyp void



  • entweder int main() mit return 0 (Standardgerecht)
    oder void main() ohne return oder return ohne Wert (M$-gerecht)

    Ich verstehe das Problem nicht.



  • nameless1337 schrieb:

    das bedeutet doch, dass nich "implitit 0" zurückgegeben wurde, oder ?

    dann ist dein compiler in dem punkt nicht standardkonform.
    ein guter compiler ist standardkonform.

    Online schrieb:

    Und was verstehst du unter ordentlichen Compiler?

    wenn ich c++ kompilieren will, dann wahrscheinlich einen c++ standardkonformen?
    wenn du nicht unbedingt c++ programmieren willst, kann es dir egal sein.
    allerdings weißt du dann nicht, ob du mit deinem C++ Dialekt dein Programm auf irgendeine andere Plattform portieren kannst, wo es diesen Dialekt nicht gibt.



  • hat mich nurmal interessiert. also gibt:

    void main() {return;}
    

    0 zurück, ist aber kein standard c++.



  • davie schrieb:

    Online schrieb:

    Und was verstehst du unter ordentlichen Compiler?

    wenn ich c++ kompilieren will, dann wahrscheinlich einen c++ standardkonformen?
    wenn du nicht unbedingt c++ programmieren willst, kann es dir egal sein.
    allerdings weißt du dann nicht, ob du mit deinem C++ Dialekt dein Programm auf irgendeine andere Plattform portieren kannst, wo es diesen Dialekt nicht gibt.

    hm...ist MS Visual C++.NET Std. 2003 nicht Standardkonform?



  • nameless1337 schrieb:

    hat mich nurmal interessiert. also gibt:

    void main() {return;}
    

    0 zurück, ist aber kein standard c++.

    dass es 0 zurückgibt, ist nirgends garantiert. main könnte so auch eine nachricht an microsoft schicken und ihm eine liste von allen deinen dateien schicken, eine atombombe zünden, oder einer uns unbekannten außerirdischen lebensform den auftrag erteilen, einen planeten zu entwerfen, um (...)

    hm...ist MS Visual C++.NET Std. 2003 nicht Standardkonform?

    in dem punkt anscheinend nicht. (warnen darf er trotzdem natürlich)



  • Er ist standardkonform und bietet einige Erweiterungen, die nicht standardkonform sind und sich abschalten lassen.
    Ich finde allerdings einige Erweiterungen recht sinnvoll (damit mein ich jetzt nicht unbedingt void main()).


Anmelden zum Antworten