Aller au contenu


Information tutoriel

  • Ajouté le: juin 08 2016 12:26
  • Date Updated: mai 15 2018 09:22
  • Lectures: 3798
 


* * * * *
1 Notes

Comment adapter la taille des variables en C

Un petit tutoriel permettant de rappeler comment adapter la taille des variables

Posté par Mike118 on juin 08 2016 12:26
Pour optimiser la taille des variables que vous créez en fonction du besoin, il n'y a rien de plus simple que de toujours garder en tête  la taille du type de variable que vous utilisez. 

Si vous avez pris l'habitude de créer la plus part de vos variable comme étant de type int sans trop vous posez de question, dites moi quel est la taille d'un int sur arduino ? C'est quoi un byte ? c'est quoi un char ? quelle est leur taille ? Afin de ne plus avoir à vous poser de question ce que je vous propose c'est de prendre l'habitude d'écrire int8_t au lieu de int ( voir int16_t si vous voulez enregistrer un gros chiffre ). Et là vous me direz : mais pourquoi ? 

En fait l'intérêt est double : int8_t est de taille deux fois plus petite qu'un int et cela vous permet de connaitre la taille de la variable crée sans plus avoir de doutes. 8 pour 8 bits = 1 byte alors qu'un int est en fait un int16_t, 16 pour 16 bits = 2 bytes.   
Or un int8_t contient une variable comprise entre -128 et 127  ce qui est généralement largement suffisant pour ce que l'on veut y stocker ! =) De plus dans le même genre, toujours sur un seul byte vous pouvez utiliser uint8_t ( unsigned int8_t =int8_t non signé ) qui contient une variable comprise entre 0 et 255. 
un int16_t permet de stocker une variable comprise entre -32 768 et 32 767 ... et donc un uint16_t  entre 0 et 65535 ...  les deux sont stocké sur 2 bytes = 16bits =)

bref pour des nombre plus grand vous pouvez aussi utiliser int32_t et int64_t et leur versions non signées ...  et je vous laisse calculer  les bornes , les formules sont : 0 à  (2^X) -1   avec X le nombre de bits  pour les non signés et  - (2^X)/2  à (2^X)/2 -1 ... 

Vous pouvez vérifier la formule en l'appliquant avec X = 8 et X = 16 pour retrouver les valeurs que je vous ais donné plus haut ! 
 
Cela vous permet d'optimiser votre code, et d'avoir un meilleur contrôle et un esprit plus critique sur ce que vous faîtes au moment où vous le fait, sans parler des éventuelles facilitations de portabilité de votre code sur d'autres plateformes par la suite ...


( PS : Pour ceux qui se posent la question byte et char sont tout deux des uint8_t ;) )
 
à très bientôt pour deux nouveaux conseils ! =) 
 
Maintenant que vous savez utiliser les variables de la bonne taille vous allez pouvoir apprendre à structurer votre code grâce aux structures