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

Visual C++ Discussion :

Code de retour d'un void main


Sujet :

Visual C++

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut Code de retour d'un void main
    Bonjour,

    je lance des ex�cutable par l'interm�diaires de .bat o� je v�rifie apr�s l'appel � l'ex�cutable "IF %ERRORLEVEL% NEQ 0 EXIT ERRORLEVEL"

    Par contre, je me suis aper�u que �a sortait pour un ex�cutable qui fonctionne tr�s bien mais qui n'a pas de retour d'erreur explicite de type int main() puisque c'est un void main().

    Et en ex�cuatnt en debug, il me dit que �a sort avec un code 44.
    Comment �a se fait, c'est quoi ce 44?

    Merci.

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    ? (c'est peut-�tre une question b�te mais que voulez-vous, j'aimerais savoir d'o� �a vient)

  3. #3
    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 : 48
    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
    Il n'y pas grand chose � dire, la norme du C dit explicitement que seules les signatures suivantes sont correctes:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    int main (void)
    int main (int argc, char ** argv)
    /* ou */
    int main (int argc, char *argv[])
    Etant donn� que main retourne un int il n'est donc pas possible qu'elle renvoie (pour ainsi dire) void !
    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 !

  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 : 48
    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 stof
    Et en ex�cuatnt en debug, il me dit que �a sort avec un code 44.
    Comment �a se fait, c'est quoi ce 44?
    Surement que ton compilateur mais implicitement int au lieu de void car il faut qu'un programme renvoie une valeur, c'est une valeur utilis�e par le syst�me sous-jacent donc essentiellement et plus pr�cis�ment, l'ordonnanceur des processus qui fait une action pr�cise par rapport au code de sortie d'un programme !

    Quant aux valeur, l� il faut te renseigner sur �ventuellement la r�f�rence ou guide du d�veloppeur par rapport � ton syst�me, en l'occurence je dirais MSDN vu que tu est sous Windows car les valeurs sont sp�cifiques � l'impl�mentation
    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�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    759
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 759
    Par d�faut
    OK Merci.

    Donc void main (...), c'est mal.

    Je ne savais pas que m�me quand on a rien � retourner, �a pouvait avoir des cons�quences comme �a.

    Je suis sous Windows effectivement (sous NT m�me pour l'instant).

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pour un void main(), le code de retour peut �tre n'importe quoi.
    Sur un programme DOS de ma composition, le retour �tait le r�sultat de ma derni�re fonction appel�e (un printf) --> Donc, le nombre de caract�res imprim�s.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    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 : 48
    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 stof
    Je ne savais pas que m�me quand on a rien � retourner, �a pouvait avoir des cons�quences comme �a.
    main retourne "toujours" une valeur, par d�faut 0 ou EXIT_SUCCESS (pour plus de portabilit�) si le programme se termine normalement auquel cas, l'ordonnanceur termine simplement le processus, l� encore le comportement d�pend fortement de l'impl�mentation je n'entrerais donc pas dans les d�tails
    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. [Mail] codes de retour email
    Par drommk dans le forum Langage
    R�ponses: 8
    Dernier message: 26/06/2006, 14h53
  2. sqlldr code de retour 137
    Par thunderblade dans le forum Oracle
    R�ponses: 9
    Dernier message: 18/04/2006, 13h55
  3. DELPHI6, Programme console et code de retour
    Par Desraux dans le forum D�buter
    R�ponses: 2
    Dernier message: 21/07/2005, 08h15
  4. [Debutant(e)] Code de retour de mon programme
    Par benji999 dans le forum G�n�ral Java
    R�ponses: 2
    Dernier message: 10/12/2004, 13h15
  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