IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[Débutant]#entre int main & void main


Sujet :

C

  1. #1
    Membre du Club

    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 55
    Points
    55
    Par défaut [Débutant]#entre int main & void main
    Salut tout le monde
    Je suis débutant en C et j'ai commencer a lire les tutos de ce site mais il y a une chose que je comprend pas. J'ai vu des exemples, parfois on mettait void main() au début du programme et parfois on mettait int main(void).
    Qu'elle est la différence ?

    merci

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Avec void, tu ne renvois rien. Par contre, avec int main, tu es oblige de rendre une valeur qui sera le code de sortie de ton programme. En general, si tout se passe bien, tu retournes 0. A noter que la forme int main est absolument recommande par la norme C-Ansi.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    A propos, de main, j'ajoute que ce que tu mets entre parentheses correpond aux arguments de ton main. Si tu met rien entre parentheses ou void, ca veut dire que tu ne donnes pas d'arguments a ton main. En gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int main () = int main(void)
    Le C Ansi impose que le main soit ecrit ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argv, char **args)
    Ou int argv represente le nombre d'arguments et char **args un "tableau" (excusez, je simplifie a mort !) representant les chaines de caracteres que tu passes en arguments.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre du Club

    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par GLDavid
    Avec void, tu ne renvois rien. Par contre, avec int main, tu es oblige de rendre une valeur qui sera le code de sortie de ton programme. En general, si tout se passe bien, tu retournes 0.
    en fait j'ai pas bien compris...je renvois quoi?

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Binga
    en fait j'ai pas bien compris...je renvois quoi?
    Tu renvois un code d'erreur afin d'informer de la bonne exécution du programme.

    Comme l'a dit GLDavid, si tout se passe bien tu retournes 0, sinon tu renvoi un nombre >0 (positif en général)

    La documentation de ton application doit indiquer a quoi correspond les codes de retour...

    C'est particulierement utile pour des programmes destinée a être utilisé dans des scripts...

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par adiGuba
    Citation Envoyé par Binga
    en fait j'ai pas bien compris...je renvois quoi?
    Tu renvois un code d'erreur afin d'informer de la bonne exécution du programme.

    Comme l'a dit GLDavid, si tout se passe bien tu retournes 0, sinon tu renvoi un nombre >0 (positif en général)

    La documentation de ton application doit indiquer a quoi correspond les codes de retour...

    C'est particulierement utile pour des programmes destinée a être utilisé dans des scripts...
    Tant qu'à faire autant faire standard et portable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #include <stdlib.h> // pour EXIT_FAILURE et EXIT_SUCCESS
     
    int main( void ) // ou int main(int argc, char *argv[])
    {
    /*
    ** code
    */
    /*
    ** En cas d'erreur dans le code et qu'il faut quitter l'application à cause de l'erreur (par exemple une erreur sur un maloc() vital ou autre :
    */
            return EXIT_FAILURE;
    /*
    ** En cas de succès du programme, pour signaler que tout s'est bien passé :
    */
            return EXIT_SUCCESS;
    }

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: [Débutant]#entre int main & void main
    Citation Envoyé par Binga
    Je suis débutant en C et j'ai commencer a lire les tutos de ce site mais il y a une chose que je comprend pas. J'ai vu des exemples, parfois on mettait void main()
    J'ose espérer que dans les tutoriels de ce site, il n'y a pas de void main()...
    au début du programme et parfois on mettait int main(void).
    Qu'elle est la différence ?
    En complément des bonnes réponses que tu as reçues:

    http://emmanuel-delahaye.developpez....s.htm#typemain
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    En complément des bonnes réponses que tu as reçues
    Si notre maître 10ème Dan en C l'a dit, alors, on est content

    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  9. #9
    Membre du Club

    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 55
    Points
    55
    Par défaut
    Je vous remercie tous pour ces informations...
    J'ose espérer que dans les tutoriels de ce site, il n'y a pas de void main()...
    A titre d'information voila le cours:
    • IUT de CACHAN
      Département GEII2

      COURS/TP DE LANGAGE C

      Joëlle MAILLEFERT

    Et voici un exemple tiré de ce cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
    #include <conio.h> 
    void main()
    {
    int n,i,fac= 1;
    printf("ENTRER UN ENTIER: ");scanf("%d",&n);
    for (i=1;i<=n;i++) fac= fac * i;
    printf("\nn = %d  n! = %d",n,fac);
    printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE");
    getch();
    }
    Merci encore

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Binga
    J'ose espérer que dans les tutoriels de ce site, il n'y a pas de void main()...
    A titre d'information voila le cours:
    • IUT de CACHAN
      Département GEII2

      COURS/TP DE LANGAGE C

      Joëlle MAILLEFERT

    Et voici un exemple tiré de ce cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <stdio.h>
    void main()
    {
    }
    Ou-est-ce que j'ai mis mon lance flamme ?

    Va falloir faire le ménage...
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. int main(); = void main(); ?
    Par -matt- dans le forum C
    Réponses: 7
    Dernier message: 11/03/2013, 16h42
  2. [script.aculo.us] Conflit entre 2 classes "clé en main" (autosuggest)
    Par marsupix dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 29/08/2007, 17h31
  3. int main() vs void main()
    Par yorukaze dans le forum C++
    Réponses: 26
    Dernier message: 25/06/2007, 23h12
  4. Code de retour d'un void main
    Par stof dans le forum Visual C++
    Réponses: 6
    Dernier message: 19/04/2007, 12h38
  5. Débutant besoin d'un coup de main avec ExecuteScalar
    Par mobscene dans le forum Accès aux données
    Réponses: 1
    Dernier message: 22/03/2007, 02h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo