Explication fonction main

miki -  
mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,a tous voila j'ai passer pas mal de temps a bosse le c bon j'ai encor de tres gros progres a faire mais bon je me debrouille pas trop mal,bref j'aimerai en savoir plus sur la fonction main et notament sur ce que signifie les parametre qui lui sont passer a savoir: int main(int argc, char *argv[])
que veut dire argc,argv et pourquoi y a til un pointeur sur argv? merci d'avance pour votre aide
Configuration: Windows Vista
Internet Explorer 7.0

8 réponses

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    argc c'est le nombre d'arguments que tu passes au programme quand tu veux l'exécuter
    et argv c'est un tableau qui contient les argument passé au programme
    0
  2. petite info Messages postés 65 Statut Membre 10
     
    La fonction main
    Si un programme est une suite de déclarations, il doit contenir au moins une définition de fonction, la fonction principale de nom main ; l'exécution du programme commence par cette fonction. C'est elle qui appelera éventuellement les autres fonctions. Elle permet de communiquer avec le système d'exploitation. Dans sa forme la plus simple, c'est une fonction sans argument, qui retourne un int ; sa définition minimale est la suivante :

    int main() {
    return 0;
    }
    0
  3. miki
     
    oki je comprend le premiers argc mais tj pas argv pk utiliser un tableau pourriez vous m'eclairer d'avantage merci
    0
  4. miki
     
    oik alors donc apres avoir relu les commentaire si je comprend bien les argument que je passe via main son copier dans un tableau en gros c'est ça n'est ce pas ?
    0
    1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
       
      voila c'est a peu pres ça il sont copié dans argv
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. petite info Messages postés 65 Statut Membre 10
     
    la fonction main avec ce prototype :

    int main(int argc, char **argv)

    permet de récupérer les éléments en ligne de comment.

    argc : nombre de parametres

    argv : tableau contenant les parametres

    Supposons qu'à l'execution, tu tapes :

    ./exo un deux trois quatre

    Dans ce cas, argc vaudra 5

    argv[0] contiendra ./exo

    argv[1] contiendra un

    argv[2] contiendra deux

    argv[3] contiendra trois

    argv[4] contiendra quatre
    0
  7. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    argv est un tableau de char * donc de chaine de caractere
    par exemple tu veux lancer ton programme avec trois arguments
    alors tu tapes la ligne de commande
    ./prog un deux trois
    a ce moment argc vaut 4 et tu as
    argv[0] vaut prog
    argv[1] vaut un
    argv[2] vaut deux
    argv[3] vaut trois
    tu remarques bien que chaque case du tableau argv contient un char * (prog,un,deux,etc..) voila pourquoi c'est un tableau
    j'espere que tu as mieux compris la ;)
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      ./prog un deux trois
      a ce moment argc vaut 4 et tu as
      argv[0] vaut prog


      en fait argv[0] vaut ./prog
      0
      1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        oui merci d'avoir corriger ;)
        0
  8. miki
     
    d'accord je comprend mieux maintenant (dsl d'avoir tarder a repondre) mersi pour ses explication jy voit plus clair maintenant,merci a vous tous et bonne soiree
    ps ayant bien comprit grace a vos explication je poste le message en resolut merci encore a vous
    0
  9. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    et voici l'exemple de ce que petite info t'as donné
    lami20j@debian:~$ cat main.c
    #include <stdio.h>
    
    int main(int argc,char **argv){
      int i;
    
      for(i=0;i<argc;printf("argv[%d] : %s\n",i-1,argv[i++]))
                    ;
      return 0;
    }
    lami20j@debian:~$ gcc main.c -o main
    lami20j@debian:~$ ./main un deux trois quatre
    argv[0] : ./main
    argv[1] : un
    argv[2] : deux
    argv[3] : trois
    argv[4] : quatre
    
    0