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 :

int main() vs void main()


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut int main() vs void main()
    Bonjour,

    je suis en pleine instruction de ce fabuleux language et je me pose une question.
    J'ai des elements de reponse trouvées sur les forums mais a chaque fois les reponses sont mitigées.
    Je travail a partir du livre "Le language C++" de chez CampusPress et dans cet ouvrage ou me preconise de ne plus utilisé void main().
    En effet apparemment ca ne se fait plus il est conseillé de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main()
    {
     
         le code;
    return 0;
    }
    l'argument est que une valeur entiere est renvoyée (donc ici 0) ce qui informe que le programme s'est terminé correctement.
    Dans le cas de void main() aucun retour n'est effectué.
    Ma question est donc de savoir si il vaut mieux l'int ou void pour la fonction main.
    J'espere que j'ai bien expliqué la chose je m'efforce de faire au mieux et je pense pas dire trop de betise

    merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    void main() n'est tout simplement pas standard, même s'il sera accepté par certains compilos. Donc la question ne se pose même pas

  3. #3
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut
    Citation Envoyé par Laurent Gomila
    void main() n'est tout simplement pas standard, même s'il sera accepté par certains compilos. Donc la question ne se pose même pas
    merci pour ta reponse.Toutefois certains scripts que l'on trouve un peu partout sur le net presentent void .
    mais je vais me contenter de ne pas l'utiliser si apparemment c'est le meiux.
    merci de ta reponse.

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    La valeur que retourne un main, c'est le code de sortie de ton processus et ce code, l'ordonnanceur de ton système d'exploitation en a besoin pour pouvoir déterminer au mieux ce qu'il doit faire pour terminer ton programme ! Donc si tu dis au compilateur que ton main ne retourne pas de valeur, je pense (mais je n'émet que des suppositions là) qu'il termine le processus avec un code de sortie par défaut... tout dépend aussi de ton OS.

    C'est la raison que je donne tout le temps lorsqu'on me pose cette question et je pense que c'est également la plus pertinente
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut
    Citation Envoyé par Franck.H
    La valeur que retourne un main, c'est le code de sortie de ton processus et ce code, l'ordonnanceur de ton système d'exploitation en a besoin pour pouvoir déterminer au mieux ce qu'il doit faire pour terminer ton programme ! Donc si tu dis au compilateur que ton main ne retourne pas de valeur, je pense (mais je n'émet que des suppositions là) qu'il termine le processus avec un code de sortie par défaut... tout dépend aussi de ton OS.

    C'est la raison que je donne tout le temps lorsqu'on me pose cette question et je pense que c'est également la plus pertinente
    ok je comprends bien ce que tu veux dire.
    Je tourne aussi bien sous linux que windows avec code::blocks.Je vais adopter l'utilisation standard (apparemment) de int main() avec le return0 en fin de fonction au moins je respecterai les standards(je sais pas encore lesquels de standard mais je vais bien trouver )
    merci.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par yorukaze
    ...avec le return0 en fin de fonction au moins je respecterai les standards(je sais pas encore lesquels de standard mais je vais bien trouver )
    merci.
    En C++ je pense que c'est pareil qu'en C donc tu peux même utiliser la constante EXIT_SUCCESS (il faut inclure stdlib.h en C, en C++ à voir) pour le return
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. Methode public static void main (String [] args)
    Par jeremypd dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 09/01/2017, 10h53
  2. int main(); = void main(); ?
    Par -matt- dans le forum C
    Réponses: 7
    Dernier message: 11/03/2013, 16h42
  3. methodes dans "void main"
    Par kevinou55 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 06/10/2008, 18h49
  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]#entre int main & void main
    Par Binga dans le forum C
    Réponses: 9
    Dernier message: 10/08/2004, 15h54

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