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 :

variable «*ret*» définie mais non utilisée


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut variable «*ret*» définie mais non utilisée
    Bonjour,

    Bizarre. variable «*ret*» définie mais non utilisée

    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
     
    int main(int argc, char *argv[])
    {
      int ret = 0;
     
      if (argv[1][0] == '/' || argv[1][0] == '-' || argc == 1)
        {
        usage();
        return 0;
        }
     
     
      if (system(NULL))
        {
        my_clrscr();  /* cls */
        ret  = (int)system(argv[1]);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sysvars.c:26:7: warning: variable «*ret*» définie mais non utilisée [-Wunused-but-set-variable]
       int ret = 0;
    Elle l'est.

    Merci


    JPD

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    C'est gentil de ne pas donné le code complet, du coup les numéros de lignes ne correspondent pas

    Et non elle n'est pas utilisée : tu lui donnes une valeur mais tu n'en fais rien. Donc c'est comme ci tu ne servais pas.

  3. #3
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    et ça?

    #16 ret = (int)system(argv[1]);

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par J4e8a16n Voir le message
    et ça?

    #16 ret = (int)system(argv[1]);
    Citation Envoyé par Bktero Voir le message
    tu lui donnes une valeur mais tu n'en fais rien
    Je ne peux pas mieux te dire... Tu supprimes la variable 'ret' de ton code, ton code fait la même chose. Ta variable n'est pas utilisée.

    Au passage, ce cast en int ne sert à rien puisque system() renvoie un int.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    +1 Éternelle confusion entre définition (et ici avec initialisation) et utilisation

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Au passage, tu as un soucis avec if (argv[1][0] == '/' || argv[1][0] == '-' || argc == 1).
    Si argc vaut 1, alors argv[1] vaut NULL, et argv[1][0] est une erreur de segmentation.

    Pour t'en prémunir, il faut écrire if (argc == 1 || argv[1][0] == '/' || argv[1][0] == '-').
    Ainsi, grace au mécanisme dir "shortcut evaluation", si argc vaut 1, alors l'expression est vraie, et les deux argv[1][0] == ... ne sont pas évaluées.

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

Discussions similaires

  1. Mémoire détectée mais non utilisée
    Par Nlice dans le forum Composants
    Réponses: 1
    Dernier message: 28/09/2015, 16h03
  2. Jointure exécutée mais non utilisée
    Par movrack dans le forum Doctrine2
    Réponses: 2
    Dernier message: 27/12/2011, 17h44
  3. Réponses: 11
    Dernier message: 21/07/2010, 09h42
  4. Réponses: 5
    Dernier message: 20/10/2006, 12h44
  5. Remonter warnings sur variables non utilisées
    Par titomcmoi dans le forum MFC
    Réponses: 2
    Dernier message: 30/05/2006, 12h42

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