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.