La taille des octets pour les types n'est pas trop intéressante lorsque vous n'avez à gérer qu'une seule langue (et pour le code que vous n'avez pas à vous rappeler des débordements mathématiques). La partie qui devient intéressante est lorsque vous faites le pont entre une langue et une autre, un objet C # vers COM, etc., ou que vous effectuez un changement de bit ou un masquage et que vous devez vous rappeler (et à vos co-wokers de révision de code) de la taille des données.
Dans la pratique, j'utilise habituellement Int32 juste pour me rappeler de quelle taille ils sont parce que j'écris du C ++ managé (pour faire le pont vers C # par exemple) ainsi que du C ++ non managé / natif.
Tant que vous le savez probablement, en C # est de 64 bits, mais en C ++ natif, il se termine en 32 bits, ou char est unicode / 16 bits tandis qu'en C ++, il est de 8 bits. Mais comment savons-nous cela? La réponse est, parce que nous l'avons recherchée dans le manuel et elle l'a dit.
Avec le temps et les expériences, vous commencerez à être plus attentif aux types lorsque vous écrivez des codes pour faire le pont entre C # et d'autres langages (certains lecteurs ici pensent "pourquoi le feriez-vous?"), Mais à mon humble avis, c'est une meilleure pratique parce que Je ne me souviens pas de ce que j'ai codé la semaine dernière (ou je n'ai pas besoin de spécifier dans mon document API que "ce paramètre est un entier 32 bits").
En F # (même si je ne l'ai jamais utilisé), ils définissent int , int32 et nativeint . La même question devrait se poser, "laquelle dois-je utiliser?". Comme d'autres l'ont mentionné, dans la plupart des cas, cela ne devrait pas avoir d'importance (devrait être transparent). Mais pour ma part, je choisirais int32 et uint32 juste pour supprimer les ambiguïtés.
Je suppose que cela dépendrait simplement des applications que vous codez, de qui l'utilise, des pratiques de codage que vous et votre équipe suivez, etc. pour justifier quand utiliser Int32.