Déterminer l'endianness du système?
Salut!:D
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:
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.:D