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 du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 43
    Points
    43
    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 régulier
    Inscrit en
    Août 2010
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 123
    Points : 93
    Points
    93
    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 chevronné
    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
    Points : 2 189
    Points
    2 189
    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;
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 43
    Points
    43
    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 chevronné
    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
    Points : 2 189
    Points
    2 189
    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
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 36
    Points : 43
    Points
    43
    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 chevronné
    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
    Points : 2 189
    Points
    2 189
    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
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

+ 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