Wenn Sie verwenden möchten , Qt , müssen Sie umarmen quint8
, quint16
und so weiter.
Wenn Sie verwenden möchten GLib , müssen Sie willkommen guint8
, guint16
und so weiter.
Auf Linux gibt es u32
, s16
und so weiter.
uC / OS definiert SINT32
, UINT16
und so weiter.
Und wenn Sie eine Kombination dieser Dinge verwenden müssen, sollten Sie besser auf Probleme vorbereitet sein. Da auf Ihrem Rechner u32
werden typedef
d über long
und quint32
wird typedef
d über int
und der Compiler wird sich beschweren .
Warum macht das jeder, wenn es das gibt <stdint.h>
? Ist das eine Art Tradition für Bibliotheken?
stdint.h
wurde erfunden.
sizeof(int) * CHAR_BIT
(zum Beispiel) sagen und das benutzen? Wenn Ihr int
zu klein ist, um Ihren Bereich darzustellen (z. B. ein Array-Index), sollten Sie ihn mit ziemlicher Sicherheit int
sowieso nicht verwenden , sondern so etwas size_t
. Warum sollte int32
es mehr Sinn machen? Die einzige Zeit, in der eine feste Breite sinnvoll ist, ist für die Kommunikation zwischen Systemen (z. B. Datei- / Netzwerkformat) ...
uint16_t
(oder vielleicht seine fast
oder eine least
Variante). Mein Punkt ist: Diese Typen sind bequem zu verwenden und haben ihren Existenzgrund.
size_t
und / oder uint64_t
.