Accès rapide :
Entête à inclure
Macros disponibles
Exemple de code
Sujets connexes
#include <iso646.h> // <ciso646> en C++
L'entête <iso646.h> ne déclare ni fonction ni type. Il définit uniquement les onze macros
suivantes. Chacune d'elles est remplacée par le jeton C correspondant avant la compilation.
| Macro | Opérateur équivalent | Utilisation classique |
|---|---|---|
and |
&& |
ET logique. |
and_eq |
&= |
ET bit à bit avec affectation. |
bitand |
& |
ET bit à bit. |
bitor |
| |
OU bit à bit. |
compl |
~ |
Complément bit à bit. |
not |
! |
NON logique. |
not_eq |
!= |
Test de différence. |
or |
|| |
OU logique. |
or_eq |
|= |
OU bit à bit avec affectation. |
xor |
^ |
OU exclusif bit à bit. |
xor_eq |
^= |
OU exclusif bit à bit avec affectation. |
Le bloc suivant montre l'usage des macros logiques et des macros bit à bit sur des valeurs simples.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iso646.h> #include <stdio.h> #include <stdlib.h> int main() { unsigned int value = 0xA; unsigned int mask = 0x3; if ( ( value bitand mask ) not_eq 0 and value not_eq 0 ) { value xor_eq mask; } printf( "value = %u\n", value ); value and_eq 0xE; printf( "value = %u\n", value ); value = compl value; printf( "value = %u\n", value ); return EXIT_SUCCESS; } |
Sur une plate-forme courante où unsigned int est codé sur 32 bits, vous pouvez obtenir le résultat suivant.
value = 9 value = 8 value = 4294967287
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :