Se si desidera utilizzare Qt , devi abbracciare quint8
, quint16
e così via.
Se si desidera utilizzare GLib , è necessario il benvenuto guint8
, guint16
e così via.
Su Linux ci sono u32
, s16
e così via.
uC / OS definisce SINT32
, UINT16
e così via.
E se devi usare una combinazione di queste cose, è meglio che tu sia preparato per i guai. Perché sulla tua macchina u32
sarà typedef
finito long
e quint32
sarà typedef
finito int
e il compilatore si lamenterà .
Perché lo fanno tutti, se c'è <stdint.h>
? È una specie di tradizione per le biblioteche?
stdint.h
stato inventato.
sizeof(int) * CHAR_BIT
(per esempio) e usarlo? Se il tuo int
è troppo piccolo per rappresentare il tuo intervallo (ad esempio un indice di array), allora quasi certamente non dovresti usarlo int
comunque, ma qualcosa di simile size_t
. Perché avrebbe int32
più senso? L'unica volta che la larghezza fissa ha senso è per la comunicazione tra i sistemi (ad es. Formato file / rete) ...
uint16_t
(o forse la sua fast
o least
variante). Il mio punto è: questi tipi sono convenienti da usare e hanno la loro ragione di esistenza.
size_t
e / o uint64_t
.