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++Builder Discussion :

Ligne de Code ? : [Débutant]


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut Ligne de Code ? :
    Bonjour,
    Mon programme ffmpeg commence à tourné mais j'ai encore des point douteux.
    Le source gnu est conforme à la norme iso c90 et iso c99.

    Mon problème concerne ce type de code:

    exemple 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int ost2= 0x10;
    int ost=0x1;
    ost2 |= ost == ost2 ? 0x100: 0x200;
    
    //resultat = ost inchangé  , ost2 = 0x203   ok
    exemple2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	int ost2= 0x10;
    	 int ost=0x1;
    	 ost2 * ost == ost2 ? 0x100: 0x200;
    
    //resultat = ost inchangé  , ost2 inchangé ???
    Comment sont interprété ces lignes de code est-ce compatible en gnu et c++builder
    Comment avoir un code compatible avec if else ou autre.


    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Par défaut
    Bonjour,

    Pour l'exemple 1,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (ost == ost2)
    {
      ost2 |= 0x100;
    }
    else
    {
      ost2 |= 0x200;
    }
    //ost2 devrait donc être égale à 0x210. (0x10 | 0x200).
    Pour l'exemple 2, les deux valeurs sont inchangées car il n'y a pas d'opérateur d'affectation.

  3. #3
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    PocoYote, tu as été plus vite que moi pour répondre. Pour l'exemple 1, voici mon code (un peu plus étendu):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int ost2= 0x10;
    int ost=0x1;
    int temp;
    if(ost == ost2)
    {
        temp = 0x100;
    }
    else
    {
        temp = 0x200;
    }
    ost2 = ost | temp;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut
    Donc pour résumer:

    pour ce code :
    ost2 |= ost == ost2 ? 0x100: 0x200;

    ost == ost2 zone test
    ost2 |= expression évalué avec 0x100 ou 0x200


    1/ évalue ost == ost2
    si vrai calcule ost2|= 0x100
    si faux calcule 0st |= 0x200

    merci pour tout

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par margilb Voir le message
    ost2 |= expression évalué avec 0x100 ou 0x200
    Fais attention il s'agit d'un OU ÉGAL. Ce n'est pas juste une évaluation, c'est une affectation aussi. C'est comme un += mais avec un OU bit-à-bit.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int x = 3;
    x += 2;
    // x est maintenant égal à 5

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Par défaut
    Citation Envoyé par Crayon Voir le message
    Fais attention il s'agit d'un OU ÉGAL. Ce n'est pas juste une évaluation, c'est une affectation aussi. C'est comme un += mais avec un OU bit-à-bit.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int x = 3;
    x += 2;
    // x est maintenant égal à 5

    Évaluation était au sens large plus précisément interprétation.
    D'une manière générale

    x |= y => x = x |y
    x+= y => x= x + y etc..

  7. #7
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par margilb Voir le message

    Évaluation était au sens large plus précisément interprétation.
    D'une manière générale

    x |= y => x = x |y
    x+= y => x= x + y etc..
    Ok c'est bien! Je voulais juste être certain que tu avais bien compris

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

Discussions similaires

  1. [LG]Traduction de 5 lignes de code
    Par barthelv dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2005, 11h13
  2. Comptabiliser les lignes de code d'un projet
    Par JPigKeud dans le forum Qualimétrie
    Réponses: 5
    Dernier message: 07/01/2005, 14h09
  3. [Debutant(e)]ligne de code sous eclipse
    Par skywalker3 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/01/2005, 17h37
  4. [netbeans][Linux] Nombre de lignes de codes
    Par sylvain_neus dans le forum NetBeans
    Réponses: 5
    Dernier message: 13/08/2004, 10h09
  5. Calculeur de ligne de code
    Par Bernybon dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 05/03/2004, 16h29

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