Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

La librairie <iso646.h> (<ciso646> en C++)

La librairie inttypes.h Les macros de l'entête iso646.h


Accès rapide :
Présentation de l'entête <iso646.h>
Eléments fournis par la librairie <iso646.h>
Exemple d'utilisation

Présentation de l'entête <iso646.h>

L'entête <iso646.h>, introduit par l'amendement C95 du standard C, propose des macros permettant d'écrire certains opérateurs logiques et bit à bit avec des mots. Cette possibilité avait surtout un intérêt historique : certains jeux de caractères ou certains claviers rendaient moins pratique la saisie de caractères comme &, |, ^, ~ ou !.

Pour utiliser ces macros en C, il suffit d'inclure l'entête suivant.

#include <iso646.h>  // <ciso646> en C++

En C++, ces noms font directement partie du langage sous forme de jetons alternatifs. L'entête <ciso646> servait donc essentiellement à conserver une compatibilité de forme avec les entêtes C.

POSIX reprend cet entête en s'alignant sur le standard C ISO. Il n'ajoute donc pas de fonction, de structure ou de macro propre à <iso646.h>.

Eléments fournis par la librairie <iso646.h>

Nom Type Description Depuis
and, or, not... Macros Synonymes textuels des opérateurs logiques, bit à bit et composés du langage C. C95

Exemple d'utilisation

L'exemple suivant utilise quelques synonymes textuels pour tester et manipuler un masque de bits.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
#include <iso646.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    unsigned int permissions = 0x6;
    unsigned int writeMask = 0x2;
    unsigned int execMask = 0x1;

    if ( ( permissions bitand writeMask ) and not ( permissions bitand execMask ) ) {
        permissions or_eq execMask;
    }

    printf( "permissions = %u\n", permissions );

    return EXIT_SUCCESS;
}
Utilisation de quelques macros de iso646.h

Cet exemple produit l'affichage suivant.

permissions = 7


La librairie inttypes.h Les macros de l'entête iso646.h




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé