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é

Macros d'endianness (C23)

Entête à inclure

#include <stdbit.h>

L'entête <stdbit.h> permet d'identifier l'ordre des octets utilisé par la plate-forme à la compilation.

Macro Description
__STDC_ENDIAN_BIG__ Valeur entière représentant cet ordre d'octets.
__STDC_ENDIAN_LITTLE__ Valeur entière représentant cet ordre d'octets.
__STDC_ENDIAN_NATIVE__ Valeur représentant l'endianness native de la plate-forme.

Exemple de code

L'exemple suivant teste l'endianness native de la machine.

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

int main() {

#if __STDC_ENDIAN_NATIVE__ == __STDC_ENDIAN_LITTLE__
    puts( "little-endian" );
#elif __STDC_ENDIAN_NATIVE__ == __STDC_ENDIAN_BIG__
    puts( "big-endian" );
#else
    puts( "endianness non standard" );
#endif

    return EXIT_SUCCESS;
}
Tester l'endianness native

Sur la plupart des machines actuelles, cet exemple produit l'affichage suivant.

little-endian

Sujets connexes

La librairie <stdbit.h>
stdc_count_ones
stdc_bit_width


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