c++ - significado - Diferencia entre diferentes tipos de enteros
tipos de variables en c++ y su significado (4)
No hay absolutamente ninguna diferencia entre unsigned int
unsigned
y unsigned int
.
Sin embargo, si ese tipo es una buena uint32_t
para uint32_t
depende de la implementación; un int
podría ser "más corto" que 32 bits.
Me preguntaba cuál es la diferencia entre uint32_t
y uint32
, y cuando miré los archivos de encabezado tenía esto:
types.h:
/** @brief 32-bit unsigned integer. */
typedef unsigned int uint32;
stdint.h:
typedef unsigned uint32_t;
Esto solo lleva a más preguntas: ¿Cuál es la diferencia entre
unsigned varName;
y
unsigned int varName;
?
Estoy usando MinGW.
No hay diferencia.
unsigned int = uint32 = uint32_t = unsigned
en su caso y unsigned int = unsigned
siempre
unsigned
y unsigned int
son sinónimos por razones históricas; ambos significan "entero sin signo del tamaño más natural para la arquitectura / plataforma de la CPU", que a menudo es (pero no siempre) 32 bits en las plataformas modernas.
<stdint.h>
es un encabezado estándar en C99 que se supone que proporciona definiciones de tipo para enteros de tamaños particulares, con la convención de denominación uint32_t
.
El <types.h>
que está viendo parece no ser estándar y presumiblemente pertenece a algún marco que está usando su proyecto. Su typedef uint32
es compatible con uint32_t
. Si debe usar uno u otro en su código es una pregunta para su gerente.
unsigned
y unsigned int
son sinónimos, como unsigned short [int]
y unsigned long [int]
.
uint32_t
es un tipo que (opcionalmente) está definido por el estándar C. uint32
es solo un nombre que uint32
, aunque se define como la misma cosa.