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