Operateurs |= &= ~ en langage C

Résolu
cyrard -  
 ikoria -
Bonjour,


Voila je fais la retro-ingenierie des sources de openssl CMS et n'etant pas tres experimente en C je ne comprend pas les operateurs suivants:
|=
&=
~
dans le contexte suivant:

int flags=CMS_DETACHED;
[...]
flags &= ~CMS_DETACHED;
[...]
flags |= CMS_BINARY;


Dans les tutos de langage C sur le net on ne parle pas de ces operateurs.
Pourraient ils etre definis dans les lignes de commandes du precompilateur dans un fichier .h quelconque de l'application.

Merci
A voir également:

7 réponses

bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   861
 
a |= b; est équivalent à : a = a|b; => le "ou" binaire
Exemple avec a = 10 (00001010 en binaire) et b = 6 (00000110 en binaire)
après a|=b, a contiendra 14 (00001110 en binaire)

a&=b est équivalent à a=a&b; => le "et" binaire
pour reprendre mon exemple : après a&=b; a contiendra 2 (00000010 en binaire)

la vague ~ est, si je me souviens bien, le complémentaire.
29