Pregunta

En el compilador MSVC++, se puede utilizar el __int8, __int16, __int32 y tipos similares para números 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 archivos personalizados, estructuras de datos de control de hardware y similares.

¿Existe un equivalente similar que pueda usar en el compilador GCC?

¿Fue útil?

Solución

El estándar ISO C, comenzando 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 apropiados (que la mayoría lo hacen).

(u)int_leastN_t también define tipos con nombres de la forma (u)int_fastN_t (tipos que tienen al menos el ancho especificado) y <=> (la " más rápida " ; tipos que tienen al menos el ancho especificado); estos tipos son obligatorios.

Si está utilizando una implementación anterior que no es compatible con <=>, puede lanzar la suya; una implementación es Doug Gwyn's " q8 " ; .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top