user
Pourquoi dans la fonction main() il n'y a rien entre les parenthèses en C ?
alphonsio

La syntaxe main() avec des parenthèses vide est utilisée lorsque le programme n'a pas besoin d'accéder aux arguments de la ligne de commande.


En langage C, la fonction main() est le point d'entrée de tout programme. Il est fréquent de voir la fonction main() sans aucun argument dans sa déclaration, c'est-à-dire avec des parenthèses vides : int main(). Mais il existe en réalité deux formes courantes de la fonction main :

  1. Forme sans arguments :
int main() {
    // Code du programme
    return 0;
}

Dans cette forme, rien n'est passé en entrée à la fonction main(). Cela signifie que le programme ne prend pas d'arguments à son lancement.

  1. Forme avec arguments :
int main(int argc, char *argv[]) {
    // Code du programme
    return 0;
}

Ici, argc (argument count) et argv (argument vector) permettent de transmettre des arguments au programme lors de son exécution via la ligne de commande.

  • argc : représente le nombre d'arguments passés.
  • argv : est un tableau de chaînes de caractères représentant les arguments.

Pourquoi ne met-on rien entre les parenthèses parfois ?

La version avec les parenthèses vides (main()) est utilisée lorsque le programme n'a pas besoin d'accéder aux arguments de la ligne de commande. C'est une manière plus simple et plus concise d'écrire la fonction quand on sait à l'avance qu'aucun argument ne sera fourni.

Remarque : Différence entre main() et main(void)

  • main() : Ceci signifie que la fonction n'a pas d'argument, mais en C, cela ne spécifie pas explicitement les types des arguments. Dans les premières versions du C, cela pouvait indiquer que la fonction pourrait accepter un nombre indéterminé d'arguments.

  • main(void) : Indique explicitement qu'aucun argument n'est accepté par la fonction, ce qui est plus précis.

Dans la plupart des cas modernes, l'usage de int main() est largement accepté et signifie implicitement que la fonction ne prend pas d'arguments.