Les types "ésotériques" de variables dans des croquis Arduino

Bonjour,
Au-delà de la référence “officielle”, je vois parfois certains types de variables comme unsigned long long donc sur 64 bits, mais aussi des uint8_t, uint16_t, uint32_t et uint64_t venant, je crois, du C.
uint64_t devant être semblable à unsigned long long

Pouvons-nous utiliser ces types de manière indifférente ou bien pas ?

Merci de vous lire,

Tout ces types sont reconnus.
L’avantage des uint8_t , uint16_t , uint32_t et uint64_t c’est qu’ils définissent clairement la taille des variables ce qui n’est pas le cas avec int par exemple.

C’est meilleur pour une éventuelle portabilité du code sur un autre microcontrôleur.

Bonjour @fdufnews

Ok, c’est vrai que de ce côté-là, c’est limpide. Mais un uint8_t, n’est-il pas de toute façon non signé. Enfin, pas grave

Merci @lesept aussi pour cette information.

Bonne fin de journée (enfin pour moi en Belgique)

J’ai un autre problème qui viendra sur ce forum si je ne le résous pas d’ici peu

1 Like

Le ‘u’ est pour ‘unsigned’
intN_t est le type (_t) ‘entier codé sur N bits’

Ouais, cela m’échappe, mais bon …

Quand tu commencess à passer un code d’une carte Arduino 8 bits à une carte à ESP32 tu te rends compte un jour où l’autre du fait que int n’a pas la même taille des deux côtés, qu’un programme peut réagir différement pour cette raison.
…d’ou l’intérêt de fixer la taille des chaque type de variable pour avoir un code universel

Ok @al1fch , et il existe la même chose pour les signés ?

Oui, signés ou pas le problème est le même

On ne s’est pas bien compris ;
Quels noms pour les non signés :wink:

on enleve le u

Ben oui, du con je suis parfois (trop souvent)

et donc quelle différence entre le uint8_t et le int8_t ?
Je veux bien la comprendre pour des formats supérieurs, mais là …

u pour unsigned c’est la même chose quelque soit la taille de la donnée.
uint8_t : 0 à 255
int8_t : -128 à +127
uint16_t : 0 à 65535
int16_t : -32768 à +32767
et ainsi de suite