ISO estándar C, comenzando con el estándar C99, añade la cabecera estándar <stdint.h>
que define los siguientes:
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
utilizo estos tipos todo el tiempo.
Estos tipos se definen solo si la implementación admite tipos predefinidos con los tamaños y características adecuados (que la mayoría lo hace).
<stdint.h>
define también tipos con nombres de la forma (u)int_leastN_t
(tipos que tienen al menos la anchura especificada) y (u)int_fastN_t
(los tipos "más rápido" que tienen al menos la anchura especificada); estos tipos son obligatorios
Si está utilizando una implementación anterior que no es compatible con <stdint.h>
, puede rodar la suya; una implementación es Doug Gwyn's "q8".
stdint.h también es parte de C99, por lo que ya no es específico de posix. – puetzk
Ya veo. Recuerdo vagamente haber visto un atributo del compilador que hace algo similar ... – Pramod
Oh, eso es bueno saber, gracias puetzk :) –