Salut!

Serait il possible avec un code C de déterminer l'endianness du système?
Si oui est-ce que celui-ci le pourrait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef ERROR
enum{ERROR=-1,
#else
#error ERROR is already defined
#endif
LITTLE_ENDIAN,
BIG_ENDIAN,
};
 
 
static int endianness(void){
 
       unsigned char* p_c=calloc(sizeof(int),1);
 
       if(p_c==NULL){
                     return ERROR;
                     }
 
       p_c[0]=0xFFFF;
 
       int* p_i=(int*)p_c;
 
       return *p_i==255?LITTLE_ENDIAN:BIG_ENDIAN;
 
}
?

Sinon existe il une constante définie par GCC qui l'indique?

Merci.