A menudo veo código fuente usando tipos como uint32, uint64 y me pregunto si el programador debería definirlos en el código de la aplicación o si están definidos en un encabezado lib estándar.
¿Cuál es la mejor manera de tener estos tipos en el código fuente de mi aplicación?

int_leastNN_tyuint_leastNN_tparaNN8, 16, 32 y 64 siempre deben existir . C99 no permite implementaciones sin un tipo entero de al menos 64 bits, ya quelong longse requiere que sea al menos así de grande.stdint.hrequiere 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.hfuente
stdint.himplementación específica? Vea también esta pregunta y esta preguntastdint.hsi 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._tsufijo, 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.fuente
uint128_tif__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.El interrogador en realidad preguntó sobre int16 (etc.) en lugar de (feo) int16_t (etc.).
No hay encabezados estándar, ni ninguno en la carpeta / usr / include / de Linux que los defina sin "_t".
fuente