Se você quiser usar o Qt , terá que aceitar quint8
, quint16
e assim por diante.
Se você quiser usar GLib , você tem que bem-vindo guint8
, guint16
e assim por diante.
No Linux existem u32
, s16
e assim por diante.
uC / OS define SINT32
, UINT16
e assim por diante.
E se você tiver que usar alguma combinação dessas coisas, é melhor estar preparado para problemas. Porque em sua máquina u32
vai typedef
acabar long
e quint32
vai typedef
acabar int
e o compilador vai reclamar .
Por que todo mundo faz isso, se houver <stdint.h>
? Isso é algum tipo de tradição para bibliotecas?
stdint.h
foi inventado.
sizeof(int) * CHAR_BIT
(por exemplo) e usar isso? Se seu int
for muito pequeno para representar seu intervalo (por exemplo, um índice de matriz), então quase certamente você não deveria usar de int
qualquer maneira, mas algo parecido size_t
. Por que int32
faria mais sentido? A única vez que a largura fixa faz sentido é para a comunicação entre sistemas (por exemplo, formato de arquivo / rede) ...
uint16_t
(ou talvez seu fast
ou least
variante). Meu ponto é: esses tipos são convenientes de usar e têm sua razão de existência.
size_t
e / ou uint64_t
.