Leur taille est donc dependante du compilateur et de la plateforme. Autant dire que c'est le bordel.
Non, c'est ainsi dans un souci de portabilité. Un programme C n'est pas prévu pour tourner dans une machine virtuelle, mais sur n'importe quelle architecture (s'il est programmé de manière portable, bien sûr).
Et comme la portabilité est la première raison d'être du langage C, c'est très bien comme ça.
Autre chose. sizeof renvoie une taille en byte. Vous me direz, "oui, et alors ?" ... Et bien le mot "byte" en anglais ne signifie pas "octet", mais multiplet. Un octet est un multiplet de 8 bits. En anglais, octet se dit octet. Et sur certaines machines, les bytes font 7 bits. Encore une fois, merci aux concepteurs du langage C de nous avoir simplifié la portabilité : on compte en bytes, et ça marche sur n'importe quelle machine.
[^] # Re: C'est un probleme notoire
Posté par Florent C. . En réponse au message Un double, sec, svp.. Évalué à 3.
Non, c'est ainsi dans un souci de portabilité. Un programme C n'est pas prévu pour tourner dans une machine virtuelle, mais sur n'importe quelle architecture (s'il est programmé de manière portable, bien sûr).
Et comme la portabilité est la première raison d'être du langage C, c'est très bien comme ça.
Autre chose. sizeof renvoie une taille en byte. Vous me direz, "oui, et alors ?" ... Et bien le mot "byte" en anglais ne signifie pas "octet", mais multiplet. Un octet est un multiplet de 8 bits. En anglais, octet se dit octet. Et sur certaines machines, les bytes font 7 bits. Encore une fois, merci aux concepteurs du langage C de nous avoir simplifié la portabilité : on compte en bytes, et ça marche sur n'importe quelle machine.