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