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 :

Problème d'interpretation ...


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut Problème d'interpretation ...
    Bonjour,
    Je n'ai pas trop l'habitude de rencontrer de telles expression et je bloque un peu sur son interpretation ...
    La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xCol = ((int)LOWORD(msg.lParam + decalage) > x + 1 ? ((int)LOWORD(msg.lParam + decalage) <= rc.right ? LOWORD(msg.lParam + decalage) : rc.right) : x + 2);
    En general on a "resultat = condition ? val1 : val2;"
    val1 ou val2 suivant si la condition est realisée

    Si quelqu'un peut m'aider sur ce coup là ...
    Merci d'avance.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut Re: Problème d'interpretation ...
    Citation Envoyé par dede92
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xCol = ((int)LOWORD(msg.lParam + decalage) > x + 1 ? ((int)LOWORD(msg.lParam + decalage) <= rc.right ? LOWORD(msg.lParam + decalage) : rc.right) : x + 2);
    Il suffit de décomposer l'expression en 2 étapes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( ((int)LOWORD(msg.lParam + decalage) > x + 1 )
        xCol = ((int)LOWORD(msg.lParam + decalage) <= rc.right ? LOWORD(msg.lParam + decalage) : rc.right);
    else
         xCol = x + 2;
    Ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if ( ((int)LOWORD(msg.lParam + decalage) > x + 1 ) {
        if ( ((int)LOWORD(msg.lParam + decalage) <= rc.right ) {
             xCol = LOWORD(msg.lParam + decalage);
        } else {
            xCol = rc.right;
        }
    } else {
         xCol = x + 2;
    }
    Jc

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Problème d'interpretation ...
    Citation Envoyé par dede92
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xCol = ((int)LOWORD(msg.lParam + decalage) > x + 1 ? ((int)LOWORD(msg.lParam + decalage) <= rc.right ? LOWORD(msg.lParam + decalage) : rc.right) : x + 2);
    En general on a "resultat = condition ? val1 : val2;"
    val1 ou val2 suivant si la condition est realisée
    Ce genre de chose , je commence par l'écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    xCol = ((int)LOWORD(msg.lParam + decalage) > x + 1 
       ? ((int)LOWORD(msg.lParam + decalage) <= rc.right 
          ? LOWORD(msg.lParam + decalage) 
          : rc.right) 
       : x + 2);
    C'est plus clair ?

    Je persiste à dire que la présentation du code est primordiale, ne serait-ce que pour soi...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Ok, C'est plus clair !
    Merci à vous deux.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2009, 11h59
  2. problème d'interpretation rubriquemémorisée
    Par chapeau_melon dans le forum WinDev
    Réponses: 1
    Dernier message: 21/03/2008, 13h09
  3. problème d'interpretation des makefile Photran/ubuntu
    Par frabrovitch dans le forum Eclipse
    Réponses: 0
    Dernier message: 01/10/2007, 09h55
  4. Problème Nullchars. Eviter l'interpretation des \0
    Par JackStrieger dans le forum C++
    Réponses: 26
    Dernier message: 07/05/2007, 22h55
  5. problème interpretation jsp
    Par youp_db dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 21/08/2006, 14h29

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