Video

Du möchtest wissen, was es mit der Main-Funktion auf sich hat? Im Folgenden Video und Beitrag zeigen wir dir, was der Befehl Main in C macht.

Inhaltsübersicht

Main in C: Bedeutung

Die Main-Funktion ist das Herzstück eines jeden Programms und wird auch häufig als Hauptfunktion bezeichnet. Sie muss in jedem deiner Projekte genau einmal enthalten sein. Das liegt daran, dass sie als einzige Funktion automatisch bei Programmaufruf ausgeführt wird. Damit ist dein Programm ohne sie nicht funktionsfähig, beziehungsweise nicht startbar. Wenn sie endet, gibt sie zudem deinem Betriebssystem oder der Software, die es gestartet hat, einen Rückgabewert zurück. Dieser ist null, wenn das Programm erfolgreich beendet, also ohne Fehler durchlaufen wurde. Sollten beim Ablauf ein Fehler aufgetreten sein, so gibt sie einen anderen Wert zurück.

Der Prozess, der das Programm aufruft, kann dann diesen Wert zur Bestimmung des Fehlers nutzen und gegebenenfalls eine passende Fehlermeldung ausgeben oder andere geeignete Maßnahmen zur Fehlerbehandlung ergreifen. Die Main-Funktion ist also quasi wie ein Bote, der Nachrichten an alle beteiligten Parteien verteilt und sie von allen wichtigen Ereignissen in Kenntnis setzt. Dazu braucht sie nicht einmal Eingabeparameter. Das bedeutet, dass sie keine besonderen Angaben zum Verrichten ihrer Arbeit benötigt.

Bedeutung der einzelnen Codezeilen und Ausgabe der Parameter: Int main

Der Prototyp, den man auch als Bauplan für die Funktionen bezeichnen kann, sieht für eine Mainfunktion in etwa so aus:

Main in C
direkt ins Video springen
Main-Funktion

Sowohl argc als auch argv in den Klammern werden verwendet, um sogenannte Kommandozeilenparameter zu übergeben.

An sich ist argc aber immer eine int-Variable, die um eins größer ist als die Anzahl der übergebenen Kommandozeilenparameter. Das liegt daran, dass es sich beim ersten übergebenen Parameter um den Namen des Programmes handelt, der ebenfalls abgespeichert wird.

Du kannst diesen und alle übergebenen Parameter auch mittels des Arrays argv ausgeben, da es sich dabei um eine Liste der Kommandozeilenparameter handelt, die ebenfalls den Programmnamen an der Stelle argv[0] speichert. Damit kannst du den ersten Parameter an der Stelle arg[1] abrufen.

Alle Befehle, die du in der Funktion später aufrufen willst, verpackst du zwischen den geschweiften Klammern, denn nur dieser Teil des Quellcodes wird nachher sicher ausgeführt. Hierher kommen aber auch deine Funktionsaufrufe und Deklarationen, sofern du sie in dieser Funktion benötigst.

Bei einem gut geschriebenen Programm ist die Main-Funktion so klein wie möglich gehalten. Das kommt dadurch zu Stande, dass sie Prozesse nur in Gang setzt und nicht selbst ausführt. Sie delegiert also Aufgaben an andere Funktionen, die diese dann bearbeiten.

Studyflix vernetzt: Hier ein Video aus einem anderen Bereich

Anwendung Main C

Angewandt sieht das Ganze dann so aus: Rufst du dieses kompilierte Programm mit den Kommandozeilenparametern a und b auf, so erhältst du folgende Ausgaben:

Main in C
direkt ins Video springen
Ausgabe

Das Programm funktioniert also tadellos. Wie du im Quellcode sehen kannst, geben wir den return-Value als letzten Befehl in der Funktion an. Er erstattet also Rückmeldung und beendet die Funktion gleichzeitig. Darüber liegen die Ausgabebefehle und der Funktionskopf, der unsere Parameter enthält.

Da du nun weißt, wie so eine Funktion aussieht, kannst du dein Programm schonmal starten und hast damit den Grundstein gelegt, um mit dem Programmieren zu beginnen.

Main-Funktion — häufigste Fragen

(ausklappen)
  • Was bedeutet int main?
    int main bedeutet, dass die Hauptfunktion main einen Integer-Wert zurückgibt. main ist der Startpunkt des Programms, weil diese Funktion beim Programmaufruf automatisch als Erstes ausgeführt wird. Der zurückgegebene Wert steht für den Status beim Beenden, oft return 0; für „ohne Fehler“.
  • Welche Argumente hat die main-Funktion in C?
    Die main-Funktion in C kann entweder keine Argumente haben oder zwei Argumente: int main(void) oder int main(int argc, char *argv[]). argc enthält die Anzahl der übergebenen Kommandozeilenparameter, und argv ist eine Liste dieser Parameter als Zeichenketten.
  • Warum ist argc immer um 1 größer als die Anzahl der Argumente, die man eingibt?
    argc ist um 1 größer, weil in argv nicht nur die selbst eingegebenen Kommandozeilenparameter stehen, sondern auch der Programmname. Dieser Programmname wird als erstes Element argv[0] gespeichert und wird deshalb beim Zählen in argc mitgerechnet.
  • Warum darf es in einem C-Programm die main-Funktion nur 1-mal geben?
    Die main-Funktion darf es nur einmal geben, weil sie der eindeutige Startpunkt des Programms sein muss. Wenn es mehrere main-Funktionen gäbe, wäre nicht klar, welche beim Start automatisch ausgeführt werden soll. Deshalb erwartet die Übersetzung eines Programms genau eine main.

Nach Beantwortung speichern wir deine Antwort, um Studyflix zu verbessern. Mehr dazu erfährst du in unserer Datenschutzerklärung.

Programmierung verstehen

Die Main-Funktion gehört zur Programmierung in C und ist der Startpunkt eines Programms. Wer sich mit Programmierung beschäftigt, arbeitet mit Funktionen, Parametern, Rückgabewerten und dem Aufbau von Quellcode. So wird klar, wie einzelne Teile eines Programms zusammenarbeiten und wie ein Programm vom Start bis zum Ende abläuft. Im Informatikbereich findest du passende Videos zu diesem und verwandten Themen.

Lernen lohnt sich! Entdecke hier deine Chancen.