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