005
05.03.2006, 21:45 Uhr
Pler
Einer von Vielen (Operator)
|
Zitat von Windalf: |
nein ist nicht notwendig... per standard wird 0 "returned" wenn nichts weiter angegeben ist (und wir sind hier im forum dem der standard am herzen liegt ;-) )
|
Hm, das ist mir neu. Ich bin bisher immer davon ausgegangen, dass es gerade nicht Standard ist, sondern (fast?) alle Compiler diesen Fehler nur übergehen (oder ausbüglen, oder sowas). Also hab ich's gleich mal ausprobiert:
- Bei einem C++-Programm meckert der g++ tatsächlich nicht. Er gibt allerdings ein Warning aus, wenn man das int vor main() weglässt. "Das ist nicht ISO C++-Konform" (Sinngemäß) - Bei einem C-Programm gibts dann aber an beiden Stellen ein Waring.
Also hab ich gleich noch mal in einem Buch nachgeschaut. Leider wird nur gesagt, dass es Standard ist, dass main als mit Rückgabetyp int deklariert sein muss. Aber nicht, dass es nicht verlangt ist, dass man auch return 0; schreibt.
Allerdings, und das sehe ich auf jeden Fall genauso:
Zitat von Buch: |
Bei einigen Compilern können Sie den Rückgabewert von main() als void deklarieren. Das entspricht jedoch nicht mehr dem gültigen C++-Standard, und Sie sollten es vermeiden, in schlechte Angewohnheiten zu verfallen. Besser ist es, main() einen Integer zurückliefern zu lassen und in der letzten Zeile von main() eine 0 zurückzugeben.
|
(Hervorhebung von mir)
Fazit: In C ist es Standard. Und ich habe nichts gefunden, wo ausgesagt wird, dass es in C++ kein Standard mehr ist. Dieser Post wurde am 05.03.2006 um 21:49 Uhr von Pler editiert. |