Quelle est la meilleure façon de déclarer un type entier, qui est toujours 4 octets sur toutes les plates-formes? Je ne vous inquiétez pas au sujet de certains de l'appareil ou de vieilles machines qui dispose de 16 bits int
.
Réponses
Trop de publicités?Corey réponse est bonne pour les "meilleurs", à mon avis, mais un simple "int" également fonctionner dans la pratique (étant donné que vous êtes ignorant les systèmes avec 16 bits de type int). À ce stade, autant de code dépend int 32 bits ce système, les vendeurs ne vont pas changer.
(Voir aussi pourquoi, longtemps est de 32 bits sur beaucoup de systèmes 64 bits et pourquoi nous avons "long long".)
L'un des avantages de l'utilisation de int32_t, cependant, c'est que vous n'êtes pas à la perpétuation de ce problème!
Vous devez inclure inttypes.h
au lieu de stdint.h
car stdint.h
n'est pas disponible sur certaines plateformes comme Solaris, et inttypes.h
comprendra stdint.h
pour vous sur les systèmes Linux.
Si vous incluez inttypes.h
puis votre code est plus portable entre Linux et Solaris.
Ce lien explique ce que je dis: HP lien sur inttypes.h
Et ce lien a un tableau indiquant pourquoi vous ne voulez pas utiliser long
ou int
si vous avez l'intention d'un certain nombre de bits présents dans votre type de données.
IBM lien sur portable types de données