main
mit RückgabewertAuch die Funktion main kann einen Rückgabewert besitzen.
Dieser muß dann vom Typ int
sein, andere
Rückgabewerte sind nicht erlaubt. Er wird an die aufrufende
Ebene (i.d.R. das Betriebssystem) zurückgegeben und dient
normalerweise dazu, einen Fehlercode zurückzugeben. Dieser kann
dann abgefragt werden, um festzustellen, ob das Programm problemlos
lief oder mit einem Fehler abbrach. Dabei gibt ein Fehlercode Null
an, daß das Programm sauber terminierte, während ein
Fehlercode ungleich Null einen Fehler anzeigt (und zumeist auch
welchen).
Der Fehlercode kann normal mit der return
-Anweisung
zurückgegeben werden oder alternativ mit der Anweisung
exit(int)
. Diese muß vorher über
#include<stdlib.h>
eingebunden werden und bringt
an beliebiger Stelle das ganze Programm zum Abbruch, der Parameter
wird als Rückgabewert für main
zurückgegeben.
Das gleiche Konzept wird häufig auch für andere
Funktionen genutzt, die dann allerdings ihren Fehlercode immer mit
return
zurückgeben (exit
würde ja
das ganze Programm beenden). So könnte eine Routine zum Öffnen
einer Datei einen Fehlercode zurückgeben, der etwa so abgefangen
werden könnte:
int main() { // main mit Fehlerwert if (oeffneDatei("name")) exit(1); // Fehler -> Abbruch des Programms return(0); // kein Fehler aufgetreten }
Hier könnte allerdings auch noch mit return(1)
abgebrochen werden, da ja nur main
verlassen werden
müßte, um das Programm zu beenden.