Solución:
uint
no es un tipo estándar – unsigned int
es.
Algunos sistemas pueden definir uint como typedef.
typedef unsigned int uint;
Para estos sistemas son iguales. Pero uint no es un tipo estándar, por lo que es posible que todos los sistemas no lo admitan y, por lo tanto, no sea portátil.
Estoy ampliando un poco las respuestas de Erik, Teoman Soygul y taskinoor.
uint no es un estándar.
Por lo tanto, se desaconseja usar su propia taquigrafía como esta:
typedef unsigned int uint;
Si busca especificidad de plataforma en su lugar (por ejemplo, necesita especificar el número de bits que ocupa su int), incluido stdint.h:
#include <stdint.h>
expondrá las siguientes categorías estándar de números enteros:
-
Tipos enteros que tienen ciertos anchos exactos
-
Tipos de enteros que tienen al menos ciertos anchos especificados
-
Tipos de enteros más rápidos que tienen al menos ciertos anchos especificados
-
Tipos de enteros lo suficientemente anchos para contener punteros a objetos
-
Tipos enteros que tienen el mayor ancho
Por ejemplo,
Tipos de enteros de ancho exacto
El nombre de typedef int N _t designa un tipo entero con signo con ancho N, sin bits de relleno y una representación en complemento a dos. Por tanto, int8_t denota un tipo de entero con signo con un ancho de exactamente 8 bits.
El nombre typedef uint N _t designa un tipo entero sin signo con ancho N. Por lo tanto, uint24_t denota un tipo entero sin signo con un ancho de exactamente 24 bits.
define
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t