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 :

sur la declaration de la methode void main()


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 75
    Par défaut sur la declaration de la methode void main()
    salut a tous pourquoi on commence toujour avec ce si
    static void main( args[]
    pourais quelqun mexpliqer ça en detail svp et merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut
    Il faut bien que quand tu executes un programme, le système sache par où commencer. Il lui faut donc un point d'entrée identifiable et c'est la fonction main. C'est la 1ere fonction de ton programme qui sera executée.
    A noter que si tu programmes sous windows, ça peut aussi bien etre winmain ou autre, mais il y a toujours une fonction de ce genre quelque soit le language.

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    C'est très etrange.

    On m'a appris que le programme commence toujours par la fonction main. Cela est vrai. Mais on m'a aussi appris que main retourne l'etat final de l'execution.

    Par consequent, main ne renvoid pas un void mais un int.

    Normalement, un programme a toujours une fonction de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int main( int argc, char** argv )
    Apres, je ne sais pas tout et il est possible qu'il existe d'autre forme. Notamment en C++, il existe :

    Mais ce sont les deux seul forme que je connaisse

  4. #4
    Membre expérimenté Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Par défaut
    En fait il y a des langages où la fonction main ne renvoie rien, c'est à dire "void", tel que le langage Java.

    Pourquoi en Java ça renvoie void et en C++ ça renvoie int ?

    Je laisse un Java-man te répondre pour le Java, mais pour le C++, la fonction main renvoie une valeur de type entier : 0 si tout va bien, toute autre valeur si pépin il y a eu.

    Sinon pour l'OP, comme on te l'a dit, la fonction main est le point de départ de tout programme, c'est la première fonction qui sera exécutée.

  5. #5
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    argc/argv permet de récupérer les arguments. Si on sait qu'on n'aura pas à les récupérer alors autant écrire main sans arguments.
    Sinon en effet la norme précise bien que main doit être de type int et non void. (même si certains compilo laisse passez ça.)

  6. #6
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Pourquoi en Java ça renvoie void et en C++ ça renvoie int ?
    Java est un langage full-object : on ne manipule pas des applications au sens C++ mais des classes "exécutables" par la machine virtuelle.
    C'est à cette dernière qu'incombe la tâche d'interfaçage avec le système, et notamment l'envoi des codes d'erreur.
    Une classe exécutable peut utiliser la méthode "System.exit(code)" pour indiquer à la JVM de renvoyer un code donné.

    C# quant à lui accepte les deux versions du "Main" :
    et :

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. [C#] Comment sortir d'une méthode void ?
    Par dcollart dans le forum C#
    Réponses: 4
    Dernier message: 14/09/2010, 14h58
  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