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 :

Les definitions de EOF, EXIT_SUCCESS, et c.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut Les definitions de EOF, EXIT_SUCCESS, et c.
    Bonjour à tous,

    mis à part la clarté et la compréhension du code source, quel est l'intérêt fondamental d'utiliser les symboles EOF, EXIT_SUCCESS ou encore EXIT_FAILURE pour ne nommer qu'eux...
    On sait bien qu'il ne s'agit que de int égaux à 1, 0 ou -1...

    Peut être que les valeurs changent selon les implémentations non?

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Une question de lisibilité, peut-être?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Par défaut pb de pre-compilation et système d'exploitation
    Cela permet une meilleure lisibilité du code c'est vrai mais il permet surtout de permettre de compiler le code sans modification dans n'importe quel environnement.

    Ce sont des mots clé dont la valeur dépend du préprocesseur et du système d'exploitation utilisé. Même si les valeurs -1, 0,1 sont en général la convention elle n'est pas obligatoire toute fois. Sa valeur définitive est attribuée à la compilation.

    exemple pour eof, (end-of-file), windows renvoie parfois ctrl-Z.

    C'est une des raisons pour laquelle un code compilé en window ne peut pas être utilisé sous unix et vis-et-versa.

    voila ce que je peux dire mais ça mérite peut être quelques approfondissement.

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par FabTheGeek Voir le message
    Bonjour à tous,

    mis à part la clarté et la compréhension du code source
    Cela justifie deja pleinement l'utilisation des macros que tu cites.

    , quel est l'intérêt fondamental d'utiliser les symboles EOF, EXIT_SUCCESS ou encore EXIT_FAILURE pour ne nommer qu'eux...
    On sait bien qu'il ne s'agit que de int égaux à 1, 0 ou -1...

    Peut être que les valeurs changent selon les implémentations non?
    Les valeurs que tu listes ne sont pas garanties par le langage, meme si elles sont utilisees par la plupart des implementations communes.
    Le langage garantit que EOF est de type int et negatif (7.19.1).
    EXIT_SUCCESS et EXIT_FAILURE ne sont definies que comme des expressions entieres constantes qui peuvent etre passees a exit(). (7.20) La valeur de retour en cas de succes est 0 ou EXIT_SUCCESS (ce qui ne veut pas dire que EXIT_SUCCESS == 0). La valeur de retour en cas d'echec est EXIT_FAILURE (7.20.4.3). La valeur de EXIT_SUCCESS ou EXIT_FAILURE n'est pas imposee par le langage.

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut
    Hola,

    merci pour ta réponse.
    Les valeurs que tu listes ne sont pas garanties par le langage, meme si elles sont utilisees par la plupart des implementations communes.
    Le langage garantit que EOF est de type int et negatif (7.19.1).
    EXIT_SUCCESS et EXIT_FAILURE ne sont definies que comme des expressions entieres constantes qui peuvent etre passees a exit(). (7.20) La valeur de retour en cas de succes est 0 ou EXIT_SUCCESS (ce qui ne veut pas dire que EXIT_SUCCESS == 0). La valeur de retour en cas d'echec est EXIT_FAILURE (7.20.4.3). La valeur de EXIT_SUCCESS ou EXIT_FAILURE n'est pas imposee par le langage.
    Les valeurs ne sont peut être pas imposées mais doivent tjs être reconnaissable par la fonction exit qui elle n'acceptera pas n'importe quelle valeur. Ceci mets vraiment de l'eau au moulin de la théorie de la "lisibilité"...

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par FabTheGeek Voir le message
    Les valeurs ne sont peut être pas imposées mais doivent tjs être reconnaissable par la fonction exit qui elle n'acceptera pas n'importe quelle valeur.
    Oui mais les valeurs acceptées par exit() ou plutôt par le système peuvent différer en fonction dudit système.
    Utiliser EXIT_FAILURE, dont la valeur réelle dépend de l'environnement, permet justement de s'assurer que dans un environnement donné la valeur sera correcte.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2015, 12h33
  2. Réponses: 0
    Dernier message: 13/03/2013, 07h55
  3. Problème avec les "Definite Clause Grammars"
    Par Black Templar dans le forum Prolog
    Réponses: 4
    Dernier message: 27/04/2011, 17h26
  4. definition d'une tache qui s'execute toutes les secondes
    Par Mokhtar BEN MESSAOUD dans le forum Administration système
    Réponses: 3
    Dernier message: 07/08/2007, 07h19
  5. [Contexte][Alias]Quelles sont les definitions de ces termes?
    Par Melvine dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/12/2005, 18h09

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