main mit Rückgabewert

Auch 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.