Je suis tombé sur un point intéressant aujourd'hui dans une revue de Code Review . @Veedrac a recommandé dans cette réponse que les types de taille variable (par exemple int
et long
) soient remplacés par des types de taille fixe comme uint64_t
et uint32_t
. Citation des commentaires de cette réponse:
Les tailles de int et long (et donc les valeurs qu'elles peuvent contenir) dépendent de la plate-forme. D'un autre côté, int32_t a toujours une longueur de 32 bits. Utiliser int signifie simplement que votre code fonctionne différemment sur différentes plates-formes, ce qui n'est généralement pas ce que vous voulez.
Le raisonnement derrière la norme ne fixant pas les types courants est partiellement expliqué ici par @supercat. C a été écrit pour être portable à travers les architectures, contrairement à l'assemblage qui était habituellement utilisé pour la programmation des systèmes à l'époque.
Je pense que l'intention de conception était à l'origine que chaque type autre que int soit la plus petite chose qui puisse gérer des nombres de différentes tailles, et que ce soit la taille "polyvalente" la plus pratique qui puisse gérer +/- 32767.
Quant à moi, j'ai toujours utilisé int
et pas vraiment inquiété les alternatives. J'ai toujours pensé que c'est le type le plus performant, la fin de l'histoire. Le seul endroit où je pensais qu'une largeur fixe serait utile est lors du codage des données pour le stockage ou pour le transfert sur un réseau. J'ai rarement vu des types à largeur fixe dans le code écrit par d'autres non plus.
Suis-je coincé dans les années 70 ou y a-t-il vraiment une justification pour l'utiliser int
à l'ère de C99 et au-delà?