15640Fermer15642
Kevin KoflerLe 05/11/2017 à 18:18
Effectivement, la manière portable de lire un entier 32-bits d'un char * est:
char *p; // variables intermédiaires parce qu'on ne peut pas utiliser plusieurs postincrements dans une même instruction unsigned char c1 = (unsigned char) *(p++); unsigned char c2 = (unsigned char) *(p++); unsigned char c3 = (unsigned char) *(p++); unsigned char c4 = (unsigned char) *(p++); // au choix: uint32_t iBE = ((uint32_t) c1 << 24u) + ((uint32_t) c2 << 16u) + ((uint32_t) c3 << 8u) + (uint32_t) c4; uint32_t iLE = (uint32_t) c1 + ((uint32_t) c2 << 8u) + ((uint32_t) c3 << 16u) + ((uint32_t) c4 << 24u);