racionales - numeros reales
¿Hay enteros de tamaño fijo en GCC? (1)
En el compilador de MSVC ++, uno puede usar los __int8
, __int16
, __int32
y similares para enteros con tamaños específicos. Esto es extremadamente útil para aplicaciones que necesitan trabajar con estructuras de datos de bajo nivel como formatos de archivo personalizados, estructuras de datos de control de hardware y similares.
¿Existe un equivalente similar que pueda usar en el compilador de GCC?
El estándar ISO C, que comienza con el estándar C99, agrega el encabezado estándar <stdint.h>
que define estos:
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
Uso 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>
también define tipos con nombres de la forma (u)int_leastN_t
(tipos que tienen al menos el ancho especificado) y (u)int_fastN_t
(los tipos "más rápidos" que tienen al menos el ancho especificado); estos tipos son obligatorios
Si está utilizando una implementación anterior que no es compatible con <stdint.h>
, puede desplegar la suya propia; una implementación es "q8" de Doug Gwyn .