return-Anweisung in main? Ja oder nein?
-
Squall3 schrieb:
Nabend. Ich lese gerade ein (wie mir scheint) etwas älteres C++ Tutorial. Dort ist nun keine return-Anweisung in der main()-Funktion. Bei manchen anderen Tutorials ist dies doch der Fall. Ist das nun wichtig? Wieso und wofür? Es funktioniert doch auch ohne?
kannst es weglassen.
wenn es nicht da ist, wird automatisch 0 zurückgegeben.

-
Hi,
schließe mich Entenwickler's Meinung an und sage das return wird nicht benötigt von einigen Compilern aber trotzdem eingefordert.Edit: Die return Anweisung ist dazu da um mitzuteilen, ob das Programm fehlerfrei beendet wurde kann aber bei Funktionen mit keinem Rückgabewert auch zum vorzeitigen "Rausspringen" genutzt werden.
void Test( void ) { return; // Aber ohne Zahl!!! /* Wird nicht mehr ausgeführt! */ }
-
Achso, na dann! Vielen Dank
-
Dummie schrieb:
Hi,
schließe mich Entenwickler's Meinung an und sage das return wird nicht benötigt von einigen Compilern aber trotzdem eingefordert.Edit: Die return Anweisung ist dazu da um mitzuteilen, ob das Programm fehlerfrei beendet wurde kann aber bei Funktionen mit keinem Rückgabewert auch zum vorzeitigen "Rausspringen" genutzt werden.
void Test( void ) { return; // Aber ohne Zahl!!! /* Wird nicht mehr ausgeführt! */ }ist es nicht genau umgekehrt, dass manche compiler darauf verzichten? ich weiß leider net, wie der standart da is...
-
piXelshooter schrieb:
ich weiß leider net, wie der stan**** da is...
laut standard kann man's weglassen, obwohl main immer 'int' zurückgeben muss.
blöd, aber ist so...

-
möb, wo kommen die sternchen da her?

-
piXelshooter schrieb:
möb, wo kommen die sternchen da her?

Standard - Standar(t)
MfG SideWinder
-
piXelshooter schrieb:
möb, wo kommen die sternchen da her?

Frag doch mal den DUDEN(tm)
SCNR

-
och ich kann dieses wort net leiden, überall schreib ichs falsch

-
Sagen wir mal VC verlangt in int main() eine return-Anweisung

Falsch!
Edit
Das bezog sich auf Sidewinders Beitrag.Hmm ne kannst dich ruhig auf beide Beiträge beziehen ... stimmen beide nicht ... VC++ nimmt (in halbwegs aktueller Version [>2003]) nur int main(), int main(int char**) an und akzeptiert auch, wenn return 0; weggelassen wird. Dieses Verhalten ist auch (mein seit ISO98) so definiert. Wird eigentlich von allen gängigen, sich an den Standard haltenden Compilern richtig behandelt.
-
Hatte "return 0" mit "void main" schreiben gleichgesetzt - mein Fehler.
BTW: VC++ nimmt auch (int, char**, char**)

MfG SideWinder
-
o.O und das ist im Standard definiert?
Was dazu gelernt ... naja ^^
-
(D)Evil schrieb:
o.O und das ist im Standard definiert?
Was dazu gelernt ... naja ^^Standard? Wo? Wer?
Nein, dass ist VC++-Standard 
MfG SideWinder
-
SideWinder schrieb:
BTW: VC++ nimmt auch (int, char**, char**)

Als Parameter soll lediglich () und (int, char**) von der Implementation garantiert werden. Darüber hinaus kann main aber alles mögliche als Parameter haben.