Если вы хотите использовать Qt , вы должны принять quint8
, quint16
и так далее.
Если вы хотите использовать GLib , вы должны приветствовать guint8
, guint16
и так далее.
В Linux есть u32
, s16
и так далее.
УНЦ / OS определяет SINT32
, UINT16
и так далее.
И если вам нужно использовать какую-то комбинацию этих вещей, вам лучше быть готовым к неприятностям. Потому что на вашей машине u32
будет typedef
d над long
и quint32
будет typedef
d над int
и компилятор будет жаловаться .
Почему все это делают, если есть <stdint.h>
? Это какая-то традиция для библиотек?
stdint.h
было изобретено.
sizeof(int) * CHAR_BIT
(например) и не использовать это? Если ваш int
слишком мал, чтобы представлять ваш диапазон (например, индекс массива), то вам почти наверняка не следует использовать в int
любом случае, но что-то вроде size_t
. В int32
чем смысл большего? Единственная фиксированная ширина имеет смысл для связи между системами (например, файловый / сетевой формат) ...
uint16_t
(или, может быть, его fast
или least
вариант). Я хочу сказать, что эти типы удобны в использовании и имеют свою причину существования.
size_t
и / или uint64_t
.