main-Funktion und Programmausführung

Jedes C-Programm verfügt über eine primäre Funktion, die den Namenmain haben muss. Die main-Funktion ist der Ausgangspunkt für die Programmausführung. Es steuert in der Regel die Programmausführung durch Verweisen der Aufrufe an andere Funktionen im Programm.

Für die main-Funktion gelten mehrere Einschränkungen, die für andere C-Funktionen nicht gelten. Mit der Funktion main werden folgende Aktionen ausgeführt:

  • Sie kann nicht als inline deklariert werden.
  • Sie kann nicht als static deklariert werden.
  • Ihre Adresse kann nicht übernommen werden.
  • Sie kann nicht aus Ihrem Programm aufgerufen werden.

Die Signatur der main-Funktion

Die main-Funktion muss nicht deklariert werden, da sie in die Sprache integriert ist. Wäre eine Deklaration erforderlich, würde die Deklarationssyntax für main wie folgt aussehen:

int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );

Die main-Funktion wird implizit mithilfe einer dieser Signaturen deklariert. Sie können jede dieser Signaturen verwenden, wenn Sie Ihre main-Funktion definieren. Der Microsoft-Compiler lässt außerdem zu, dass main den Rückgabetyp void hat, wenn kein Wert zurückgegeben wird. Die Parameter argv undenvp von wmain können auch als Typ char**definiert werden. Weitere Informationen zu den Argumenten finden Sie unter Argumentbeschreibung.

Hinweise

Funktionen innerhalb des Quellprogramms führen eine oder mehrere bestimmte Aufgaben aus. Die main-Funktion ruft diese Funktionen auf, um die jeweiligen Aufgaben auszuführen. Wenn main eine andere Funktion aufruft, übergibt sie die Ablaufsteuerung an die Funktion, sodass die Ausführung bei der ersten Anweisung in der Funktion beginnt. Eine Funktion gibt die Steuerung an main zurück, wenn eine return-Anweisung ausgeführt wird oder das Ende der Funktion erreicht ist.

Sie können beliebige Funktionen, einschließlich main mit Parametern deklarieren. Der Begriff "Parameter" oder "formaler Parameter" bezieht sich auf den Bezeichner, der einen Wert empfängt, der an eine Funktion übergeben wird. Informationen zum Übergeben von Argumenten an Parameter finden Sie unter Parameter. Wenn eine Funktion eine andere Funktion aufruft, empfängt die aufgerufene Funktion Werte für ihre Parameter von der aufrufenden Funktion. Diese Werte werden als Argumente bezeichnet. Sie können formale Parameter für main so deklarieren, dass die Funktion Argumente von der Befehlszeile mit dem in der Funktionssignatur angegebenen Format empfangen kann.

Wenn Sie Informationen an die main-Funktion übergeben möchten, werden die Parameter in der Regel argc und argv genannt, obwohl diese Namen für den C-Compiler nicht erforderlich sind. Wird ein dritter Parameter an main übergeben, erhält dieser Parameter üblicherweise den Namen envp. Die Typen für argc, argv und envp werden von der Programmiersprache C definiert. Sie könnenargv auch als char** argv und envp als char** envp deklarieren. Beispiele weiter unten in diesem Abschnitt beschrieben, wie diese drei Parameter verwendet werden können, um auf Befehlszeilenargumente zuzugreifen. Diese Parameter werden in den folgenden Abschnitten erläutert.

Wenn der Code dem Unicode-Programmiermodell entspricht, können Sie die Microsoft-spezifische Breitzeichenversion von main, wmain, als Einstiegspunkt Ihres Programms verwenden. Weitere Informationen zu dieser Breitzeichenversion von main, finden Sie unter Verwenden von wmain.

main-Beendigung

Die Ausführung eines Programms wird in der Regel angehalten, wenn die Steuerung von main zurückgegeben wird oder das Ende dieser Funktion erreicht wird, obwohl es aus verschiedenen Gründen an anderen Punkten im Programm beendet werden kann. Sie können z. B. die Beendigung Ihres Programms erzwingen, wenn eine Fehlerbedingung erkannt wird. Dafür können Sie die exit-Funktion verwenden. Weitere Informationen zu exit und ein Beispiel für deren Verwendung finden Sie unter exit.

Weitere Informationen

main-Funktion und Befehlszeilenargumente (C++)
Analysieren von C-Befehlszeilenargumenten