Je vois souvent du code source utilisant des types tels que uint32, uint64 et je me demande s’ils devraient être définis par le programmeur dans le code de l’application ou s’ils sont définis dans un en-tête de lib standard.
Quelle est la meilleure façon d’avoir ces types sur le code source de mon application?
Le stdint.h
C99 définit ces éléments:
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
Et si l’architecture les supporte:
int64_t
uint64_t
Il existe également plusieurs autres types d’entiers dans stdint.h
.
Si vous êtes bloqué sans environnement C99, vous devriez probablement fournir vos propres typedefs et utiliser les C99 de toute façon.
Les uint32
et uint64
(sans le suffixe _t
) sont probablement spécifiques à une application.
Ces types d’entiers sont tous définis dans stdint.h
Si vous utilisez C99, incluez simplement stdint.h
. BTW, les types 64 bits sont là si le processeur les supporte.
Le questionneur a en fait posé des questions sur int16 (etc) plutôt que (moche) int16_t (etc).
Il n’y a pas d’en-tête standard – ni de dossier / usr / include / dans Linux qui les définissent sans le “_t”.