uint32_t

Bonjour,
Je voudrait savoir si :
uint32_t correspond à unsigned long
uint16_t ----------- unsigned int
uint8_t ----------- byte
déduction d'après mes recherches, mes j'aimerai confirmation si erreur ou pas.

Merci pour vos réponses.

Amicalement

Bonjour,

Ca dépend du processeur et du compilateur.
Pour le processeurs avr et avec le compilateur de l'ide, la réponse est OUI.

uint16_t ----------- unsigned int

et
uint16_t ----------- unsigned int ----------- word
(je suis paresseux word n'a que 4 lettres!)

word ne fait pas partie de la norme, c’est un rajout fréquent. Dans le monde arduino il est défini dans Arduino.h comme étant typedef unsigned int word;(idem sur esp32)

Attention donc à ce qu’a dit @kamill. uint16_t est garanti d’être sur 2 octets par la norme, mais la norme n’impose pas une taille fixe pour unsigned int qui peut en avoir 2 (par exemple sur UNO, MEGA,...) ou 4 (par exemple sur ESP ou MKR)

La plupart des plateformes 8 bits utilisent 2 octets et les architectures 32 bits 4

Et c'est bien pour la raison exposée par J-M-L que les intX_t ou uintX_t ont été introduits : imposer sa volonté au compilateur et l'obliger à faire ce qu'on a choisi.

Bonjour,

J'ai un UNO la compilation avec IDE ne me donne pas d'erreur, je voulais confirmation.

Avec un NANO ou un MEGA est-ce aussi valable.

Merci

Amicalement

ben ça dépend de ce que vous utilisez dans le code.

Pour les uint32_t ce sera exactement 4 octets quelle que soit la plate-forme (les octets pouvant être rangés dans un sens ou dans l'autre (petit/gros boutiste) suivant les plateformes)

(les 3 que vous listez sont des processeurs 8 bits donc les versions non intX_t ou uintX_t seront les mêmes)

Merci , pour vos réponses.

Amicalement