Respuestas:
El C99 stdint.h
define estos:
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
Y, si la arquitectura los admite:
int64_t
uint64_t
También hay otras definiciones de tipos enteros stdint.h
.
Si está atascado sin un entorno C99, probablemente debería proporcionar sus propias definiciones de tipo y usar las C99 de todos modos.
Los uint32
y uint64
(es decir, sin el _t
sufijo) son probablemente específicos de la aplicación.
stdint.h
requiere todos.
typedef uint32_t Uint32;
en include / SDL_stdinc.h (si es usuario de SDL)
Todos esos tipos de enteros están definidos en stdint.h
stdint.h
si respetas el estándar C99.
stdint.h
. Esto devuelve 0 hits: grep uint32 /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h | grep -v uint32_t
.
#include "stdint-gcc.h"
, y grepping ese archivo produce las definiciones.
_t
sufijo, como se enumera en la respuesta anterior.
Si está utilizando C99 solo incluya stdint.h
. Por cierto, los tipos de 64 bits están ahí si el procesador los admite.
uint128_t
if __SIZEOF_INT128__
definido como 16 o mayor (GCC y compatibles). Está disponible en máquinas x86_64 / amd64, pero el procesador no lo admite de forma nativa. Solo los Cray tienen ese tamaño de registro, IIRC.
int_leastNN_t
yuint_leastNN_t
paraNN
8, 16, 32 y 64 siempre deben existir . C99 no permite implementaciones sin un tipo entero de al menos 64 bits, ya quelong long
se requiere que sea al menos así de grande.