Fonction main [Fermé]

Signaler
-
blurk
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
-
bonjour a tous,

je debute en c++ et dans mes programme je rencontre souvent:

int main(int argc, char* argv[])

est ce que quelqu' un pourrai m'expliquer en detail ce que cette ligne veut dire et surtout dans quel cas l'utiliser (quand on declare des pointeur, des tableau,...)

merci d'avance

3 réponses

Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
140
cette ligne c'est le "point d'entree" de ton programme, c'est la première fonction qui sera exécutée,
le premier paramètre (argc) c'est un nombre indiquant combien ton programme (lorsqu'il est lancée en ligne de commande) a de paramètres
le second (argv[]) c'est un tableau de chaines pointants chacune sur l'argument dont tu donne l'index.
exemple,
tu as un programme compilé "monprog.exe"
tu le lance ainsi:
c:\>monprog +r -f fichier.txt

dans le programme tu as:
argc=3
argv[0]="monprog"
argv[1]="+r"
argv[2]="-f"
argv[3]="fichier.txt"

@*
merci beaucoup pour tes explication!

juste une derniere petite question : lors de la conception d'un programme faut-il indiquer les valeurs (3 comme tu me l'a mis dans l'exemple) ou alors on met toujours argc,argv[] et c'est le compilateur qui fait le reste tout seul

merci
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
Salut

1/ on peut très bien faire
int main()

sans arguments, le compilateur l'accepte.
dans ce cas, adieu le "ouvrir avec" ou autres joyeusetés

2/ c'est à toi de gérer argc et argv pour leurs valeurs.
le compilateur ne peut pas deviner combien d'arguments il peut y
avoir au maximum, ni ce qu'ils peuvent accepter.
cependant, argc prendra automatiquement comme valeur le nombre d'arguments qui ont été passés au lancement du programme.

3/le nombre maximum d'arguments ? il n'y a pas d'autre limite
que la valeur maximale que peut contenir un integer (en principe).

cordialement