Partage
  • Partager sur Facebook
  • Partager sur Twitter

Demande d'informations

Sujet résolu
    16 septembre 2021 à 14:34:31

    Bonjour à tous,

    j'ai trouvé ces lignes de codes en c++, et j'aurai aimer savoir ce que ça signifie

    #define VAR1 0x00000001

    #define VAR2 0x00000010

    #define VAR3 0x00000100

    #define VAR4 (VAR1 | VAR2 |VAR3)

    je connais l'instruction du préprocesseur 

    #define A 100

    #define B 200

    mais pas les autres

    etc...

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2021 à 14:42:43

      Ce sont aussi des définitions pour le préprocesseur, les valeurs sont données en hexadecimal, c'est tout.

      VAR4 est le résultat du OU binaire entre VAR1, VAR2 et VAR3.

      • Partager sur Facebook
      • Partager sur Twitter
        16 septembre 2021 à 15:10:35

        Merci beaucoup pour vos réponses, ça m'aide beaucoup; c'est un logiciel qui date de il y a 30ans et on est en train de le modifié.
        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2021 à 18:02:30

          Alors virez ces cochonneries avec des trucs plus "safe", classe d'enum, constexpr etc...
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            17 septembre 2021 à 10:10:25

            Bien que ce ne soit pas faux, il vaudrait mieux remplacer le 0x par 0b, car là il y a un gâchis de bits. Si on veux écrire en hexa il faudrait mettre 0x1, 0x2, 0x4, ce qui serait équivalent à ce qui est écrit mais en binaire : 0b1, 0b10, 0b100. Aussi les zéros avant le premier chiffre significatif sont optionnels (ne servent à rien). FWIW en C++ il existe la classe std::bitset pour representer ce genre de chose
            • Partager sur Facebook
            • Partager sur Twitter
              1 octobre 2021 à 15:45:03

              Merci pour vos réponses et désolé pour le retard;

              en fait c'est un logiciel dont le développement a commencé en 1989, c'est pour ça qu'il y a un peu de vieilleries mais ils ne ont demander de faire avec.

              en tout cas merci pour votre aide.

              • Partager sur Facebook
              • Partager sur Twitter

              Demande d'informations

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown