005
15.06.2004, 15:13 Uhr
0xdeadbeef
Gott (Operator)
|
Es hat auch noch nen anderen Hintergrund, dass main int und nicht void ist.
Unter Windows vergisst man das zwar gerne, weil da eh keiner Skripte benutzt, aber ein Programm hat auch einen Rückgabewert, den die ausführende Shell auslesen kann. 0 bedeutet dabei idR Erfolg, alles andere einen Fehler - auf die Art können zum Beispiel Skripte darauf reagieren, wenn einer der Schritte fehlgeschlagen ist.
Eine der häufigsten Anwendungen unter Unix ist wohl
In diesem Fall wird erst make ausgeführt, und wenn das 0 zurückgibt (also erfolgreich beendet wurde), führt die Shell auch make install aus.
Wenn du void main benutzt, kann als Rückgabewert alles mögliche rauskommen, was jede Möglichkeit der Fehlerbehandlung eliminiert. Wenn dein Compiler int main erwartet und nicht mit der Möglichkeit eines void main rechnet, kann sowas sogar vereinzelt zu segfaults führen, sobald die Shell den Rückgabewert auslesen will - das fangen die meisten Compiler aber ab, weil void main inzwischen eine recht weit verbreitete Unsitte ist. Ganz abgesehen davon ist "int" kürzer zu tippen als "void" - warum sollte man also gegen den Standard verstoßen? -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |