Je vois souvent du code source utilisant des types tels que uint32, uint64 et je me demande s'ils doivent être définis par le programmeur dans le code de l'application ou s'ils sont définis dans un en-tête de bibliothèque standard.
Quelle est la meilleure façon d'avoir ces types sur le code source de mon application?
Le C99 stdint.h
définit ceux-ci:
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
Et si l'architecture les supporte:
int64_t
uint64_t
Il existe divers autres types entiers dans stdint.h
ainsi que.
Si vous êtes bloqué sans environnement C99, vous devriez probablement fournir vos propres polices de caractères et utiliser celles de C99 de toute façon.
Le uint32
et uint64
(c'est-à-dire sans le _t
suffixe) sont probablement spécifiques à une application.
Ces types entiers sont tous définis dans stdint.h
Si vous utilisez C99, n'incluez que stdint.h
. BTW, les types 64 bits sont là ssi le processeur les prend en charge.
Le questionneur a en fait posé des questions sur int16 (etc) plutôt que sur (laid) int16_t (etc).
Il n'y a pas d'en-tête standard - ni de dossier dans le dossier/usr/include/de Linux qui les définit sans le "_t".