Fonction main
et exécution du programme
Chaque programme C possède une fonction principale qui doit être nommée main
. La fonction main
sert de point de départ pour l’exécution du programme. Elle contrôle généralement l'exécution du programme en dirigeant les appels à d'autres fonctions du programme.
Plusieurs restrictions s’appliquent à la fonction main
, qui ne s’appliquent à aucune autre fonction C. La fonction main
:
- Ne peut pas être déclaré en tant que
inline
. - Ne peut pas être déclaré en tant que
static
. - Son adresse ne peut pas être prise.
- Ne peut pas être appelée à partir de votre programme.
Signature de la fonction main
La fonction main
n’a pas de déclaration, car elle est intégrée au langage. Si elle en avait, la syntaxe de déclaration pour main
ressemblerait à ceci :
int main( void );
int main( int argc, char *argv[ ] );
int main( int argc, char *argv[ ], char *envp[ ] );
La fonction main
est déclarée implicitement à l’aide de l’une de ces signatures. Vous pouvez utiliser l’une de ces signatures lorsque vous définissez votre fonction main
. Le compilateur Microsoft autorise également main
à avoir un type de retour void
quand aucune valeur n’est retournée. Les paramètres argv
et envp
pour wmain
peuvent également être définis en tant que type char**
. Pour plus d’informations sur les arguments, consultez Description des arguments.
Notes
Les fonctions du programme source effectuent une ou plusieurs tâches spécifiques. La fonction main
peut appeler ces fonctions afin qu’elles effectuent leurs tâches respectives. Lorsque la fonction main
appelle une autre fonction, elle passe le contrôle d’exécution à celle-ci afin que l’exécution commence à sa première instruction. Une fonction retourne le contrôle à main
quand une instruction return
est exécutée ou que la fin de la fonction est atteinte.
Vous pouvez déclarer toute fonction, notamment main
, pour avoir des paramètres. Le terme « paramètre » ou « paramètre formel » désigne l'identificateur qui reçoit une valeur passée à une fonction. Pour plus d’informations sur la transmission d’arguments aux paramètres, consultez Paramètres. Lorsqu'une fonction en appelle une autre, la fonction appelée reçoit de la fonction appelante des valeurs pour ses paramètres. Ces valeurs sont appelées arguments. Vous pouvez déclarer des paramètres formels pour la fonction main
de façon à ce qu’elle puisse recevoir des arguments de la ligne de commande. Pour cela, utilisez le format indiqué dans la signature de fonction.
Pour passer des informations à la fonction main
, les paramètres sont traditionnellement nommés argc
et argv
bien que le compilateur C n’ait pas besoin de ces noms. Traditionnellement, si un troisième paramètre est passé à main
, ce paramètre est nommé envp
. Les types de argc
, argv
et envp
sont définis par le langage C. Vous pouvez également déclarer argv
en tant que char** argv
, et envp
en tant que char** envp
. Les exemples figurant dans la suite de cette section expliquent comment utiliser ces trois paramètres pour accéder aux arguments de la ligne de commande. Les sections ci-dessous expliquent ces paramètres.
Si votre code respecte le modèle de programmation Unicode, vous pouvez utiliser la version de main
à caractères larges spécifique à Microsoft, wmain
, en tant que point d’entrée de votre programme. Pour plus d’informations sur cette version de main
à caractères larges, consultez Utilisation de wmain
.
Arrêt de main
Un programme cesse généralement de s’exécuter lorsqu’il retourne à partir de ou atteint la fin de main
, même s’il peut s’arrêter à d’autres points du programme pour diverses raisons. Par exemple, vous pouvez forcer l’arrêt de votre programme quand une condition d’erreur est détectée. Pour ce faire, vous pouvez utiliser la fonction exit
. Pour plus d’informations sur exit
et un exemple d’utilisation, consultez exit
.
Voir aussi
Fonction main
et arguments de ligne de commande (C++)
Analyse des arguments de ligne de commande C