• [^] # Re: Question probablement bête

    Posté par (site web personnel) . En réponse au journal #define CHAR_BIT 8. Évalué à 9. Dernière modification le 19 octobre 2024 à 13:54.

    Réponse : c'est légal, c'est autorisé par la norme C, un octet ne fait pas forcément 8 bits.

    Alors une chose de sûr, un octet fait forcément 8 bits, c'est sa définition, dans un dico et tout et tout (octet, et du latin), j'imagine donc que tu voulais parler d'une byte ou multiplet

    Ensuite, la j'aimerai l'argument, qu'on me corrige si je me trompe mais il me semble que le standard dit que :
    uint8_t fait exactement 8 bit
    sizeof(char) fait forcément 1
    la taille minimum de char est 8
    Partant de ces postulats, mathématiquement sizeof(uint8_t) ne peut pas être autre chose que 1 (aucune taille de char, la seule chose variable, peut faire une autre valeur sans manquer de respecter une des règles, genre il faudrait que la taille d'un char soit 4 qui n'est pas valide).

    Conclusion : le gars qui customise un compilo pour en arriver là, c'est le diable en personne !

    Clairement, et on peut supposer que c'est un gros bug mais qu'ils ne veulent pas corriger à cause de conséquences chiantes à gérer.