ein Kapitel zurück                                           ein Kapitel weiter

Gibt man der main() - Funktion einen anderen Rückgabewert außer int, könnte in C99-Standard Compiler ein undefiniertes Verhalten auftreten. In vielen Büchern findet man die main() - Funktion in folgender Schreibweise wieder...

void main()
{
    ...
}


Nach dem C89 - Standard ist dies auch richtig. Läuft ein Compiler nach C99 Standard, wird eine Warnung ausgegeben, das die main() Funktion einen Rückgabewert erwartet.

Die main()-Funktion lautet (nach C99) richtig.....

int main()
{
   return 0;
}


...oder mit 2 Parametern...

int main(int argc, char **argv)
{
   return 0;
}


Sollten sie der main()- Funktion einen anderen Rückgabetypen als int übergeben ist das Verhalten undefiniert. Der Rückgabewert an die main() - Funktion dient dafür das der StartUp-Code dem Betriebssystem und der Umgebung mitteilt, das unser Programm ordentlich beendet wurde.

Es gibt außerdem drei Kompatible Werte die sie der Funktion zurückgeben können...

return 0;
return EXIT_SUCCESS;
return EXIT_FAILURE;


Die letzten beiden Konstanten finden sie meist in der Headerdatei <stdlib.h> Die Beendigung von der main() - Funktion mittels return 0 ist übrigens gleichwertig mit exit. In folgenden Fällen liegt ein undefiniertes Verhalten beim Beenden der main () Funktion vor......

  • Ohne Rückgabewert mit void main
  • Aufruf in main von return (ohne Wertangabe)
  • Aufruf von exit und _exit im Programm


Der Startup-Code wird zu Beginn des Prozesses erzeugt (meist in Assembler) und dient zur Beendigung eines Prozesses.
Bei Beendigung der main()- Funktion mittels return 0 wird wieder zum StartUP- Code zurückgesprungen. Der StartUp-Code ruft dann die exit-Funktion auf. Die exit-Funktion führt dann noch einige Aufräumarbeiten durch. Als letztes wird der Prozess mit der Funktion _exit() beendet. Wollen wir uns den Programmablauf einmal Bildlich ansehen...


int oder void main?

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf