• [^] # Re: May the 64bits be with you !

    Posté par . En réponse au journal Les enfants, un grand moment de l'Histoire se prépare.... Évalué à 2.

    Alors le C99 dit exactement ca (je résume un peu)

    Les implémentations doivent fournir des types qui couvrent AU MOINS ces plages de valeurs la:

    short : -32767 .. +32767
    int: -32767 .. +32767
    long: -2147483647 .. +2147483647

    Ces valeurs sont contenues dans (SHORT|INT|LONG)_(MIN|MAX) dans <stdint.h>

    Après les implémentations peuvent faire ce quelles veulent. On notera aussi une référence qui indique que le int devrait de préférence est le mot machine (avec la contrainte énnoncée ci dessus).

    Ainsi on a un short qui est au moins sur 2 octets, et pas bytes, un int est aussi au moins sur 2 octets un long au moins sur 4.

    > Donc un long int devrait faire 128 bits sur archi 64 bits.

    Rien est moins sur. Il n'y a aucune mention d'un type 128 bits dans le C99. Les plus grand que l'on trouvent sont le long long qui lui est obligatoirement sur au moins 64 bits et le int64_t qui lui est exactement sur 64 bits (un long long correspondant à un int_least64_t).