Si vous souhaitez utiliser Qt , vous devez accepter quint8
, quint16
et ainsi de suite.
Si vous souhaitez utiliser GLib , vous devez accueillir guint8
, guint16
et ainsi de suite.
Sur Linux, il y en a u32
, s16
et ainsi de suite.
uC / OS définit SINT32
, UINT16
et ainsi de suite.
Et si vous devez utiliser une combinaison de ces éléments, vous feriez mieux de vous préparer aux ennuis. Parce que sur votre machine u32
sera typedef
terminé long
et quint32
sera typedef
terminé int
et le compilateur se plaindra .
Pourquoi tout le monde fait-il cela, s'il y en a <stdint.h>
? S'agit-il d'une sorte de tradition pour les bibliothèques?
stdint.h
été inventé.
sizeof(int) * CHAR_BIT
(par exemple) et utiliser cela? Si votre int
est trop petit pour représenter votre plage (par exemple un index de tableau), alors vous ne devriez certainement pas utiliser de int
toute façon, mais quelque chose comme size_t
. Pourquoi aurait-il int32
plus de sens? Le seul moment où la largeur fixe a du sens est pour la communication entre les systèmes (par exemple, format de fichier / réseau) ...
uint16_t
(ou peut-être sa fast
ou sa least
variante). Mon point étant: ces types sont pratiques à utiliser et ont leur raison d'être.
size_t
et / ou uint64_t
.