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 :

Instruction point-virgule dans mon programme.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut Instruction point-virgule dans mon programme.
    Salut,

    Je voudrais savoir si vous trouvez ça choquant, le fait d'utiliser un point-virgule dans une condition pour dire à son programme de ne rien faire et de passer directement au Else. Je le fait en ce moment sur un de mes programmes et je me demande si ça n'est pas dangereux....

    A+

  2. #2
    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
    un point virgule ???
    Euh, c'est juste que c'est bizarre, ca compile ?

    Lorsque je fais certains test, il m'arrive de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    enum {TEST_0, TEST_1};
     
    if(TEST_1)
    {
    }
    else
    {
    }
    en mettant 1 si je veux activer la premiere partie, et 0 si je veux activer la deuxieme.
    En general, il faut commenter en gros ce genre de chose pour ne pas oublier. Ici, j'utilise un enum. Lors de ma version final, je supprime l'enum et ca me detecte les endroit ou je fais ce genre de chose pour remettre a plat.

    Pour tout ceux qui diront "Hannnnn, faut pas faire comme ca, c'est le mal !", je dirai simplement qu'il existe certain cas ou cela se justifie pleinement.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Oui un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If (condition)
    {
      ;
    }
    else
     quelquechose....
    ça compile très bien sans warning, mais ta solution est plus propre je trouve.

  4. #4
    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
    Ah, je n'avais pas compris cela comme ca.

    Tu peux tout a fait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (/*condition */)
    {
    }
    else
    {
    }
    pas besoins d'un ';' dans le vague.

    Par contre, si ce sont des test destiné a etre supprimé, essaye de mettre quelque chose qui retiendra la postion du bloc, du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    enum Asupprimer {TEST} 
    if (/*condition */)
    {
        TEST;
    }
    else
    {
    }
    comme ca, a la fin, tu supprime l'enum et le compilo t'indique directement les sections que tu dois regarder (undefined reference).

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Entendu, merci pour ta réponse et ton aide ;D

    A+

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par katcha95 Voir le message
    Oui un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If (condition)
    {
      ;
    }
    else
     quelquechose....
    ça compile très bien sans warning, mais ta solution est plus propre je trouve.
    ne serait-il pas alors plus judicieux et propre de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If (! condition)
     quelquechose....
    ??

  7. #7
    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
    Citation Envoyé par souviron34 Voir le message
    ne serait-il pas alors plus judicieux et propre de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If (! condition)
     quelquechose....
    ??
    Tout depend du contexte. Cela peut etre un morceaux de code destiné a faire des test et sur lequel on reviendra pour la version final.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (/* Vrai condition */)
    {
        /* Du code, mais on sait pas encore quoi */
    }
    else
    {
        /* Code de test */
    }

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    à ce compte-là, et à moins que le test ne soit à conserver dans le futur, il est préférable de mettre un ifdef...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef TEST
    #else
    #endif
    Comme ça le code de test n'est pas inclus dans le vrai binaire...

  9. #9
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par katcha95 Voir le message
    Salut,

    Je voudrais savoir si vous trouvez ça choquant, le fait d'utiliser un point-virgule dans une condition pour dire à son programme de ne rien faire et de passer directement au Else. Je le fait en ce moment sur un de mes programmes et je me demande si ça n'est pas dangereux....

    A+
    Pour compléter ce que dit SofEvans, un ; seul correspond à une instruction vide qui ne fait rien (je ne parle pas des ; figurants dans les conditions d'un for où ils sont séparateurs d'expressions) . On peut avoir besoin de l'utiliser là où la syntaxe demande une instruction alors qu'on a rien à faire comme par exemple dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while(........) ;
    ou for (...;...;...) ;
    Dans ces cas, je trouve préférable de placer un bloc vide, qui exprime très clairement que je ne veux rien faire :

Discussions similaires

  1. Integrer une musique dans mon programme
    Par Tutux84 dans le forum C
    Réponses: 2
    Dernier message: 29/01/2005, 12h41
  2. lire le point-virgule dans un fichier .ini
    Par juflata dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/07/2004, 12h46
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52

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