Ответ 1
Стандарт ISO C, начиная со стандартного C99, добавляет стандартный заголовок <stdint.h>
, который определяет их:
uint8_t - unsigned 8 bit
int8_t - signed 8 bit
uint16_t - unsigned 16 bit
int16_t - signed 16 bit
uint32_t - unsigned 32 bit
int32_t - signed 32 bit
uint64_t - unsigned 64 bit
int64_t - signed 64 bit
Я использую эти типы все время.
Эти типы определяются только в том случае, если реализация поддерживает предопределенные типы с соответствующими размерами и характеристиками (что наиболее важно).
<stdint.h>
также определяет типы с именами формы (u)int_leastN_t
(типы, которые имеют по крайней мере указанную ширину) и (u)int_fastN_t
( "самые быстрые" типы, которые имеют как минимум указанную ширину); эти типы являются обязательными.
Если вы используете старую реализацию, не поддерживающую <stdint.h>
, вы можете перевернуть свой собственный; одна реализация Doug Gwyn "q8" .