Hay 5 tipos de enteros sin signo estándar en C:
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long
con varios requisitos para sus tamaños y rangos (brevemente, el rango de cada tipo es un subconjunto del rango del siguiente tipo, pero algunos de ellos pueden tener el mismo rango).
size_t
es un typedef
(es decir, un alias) para algún tipo sin signo (probablemente uno de los anteriores, pero posiblemente un tipo entero sin signo extendido , aunque eso es poco probable). Es el tipo cedido por elsizeof
operador.
En un sistema, podría tener sentido usarlo unsigned int
para representar tamaños; en otro, podría tener más sentido usar unsigned long
o unsigned long long
. ( size_t
es poco probable que sea unsigned char
o unsigned short
, pero está permitido).
El propósito de size_t
es aliviar al programador de tener que preocuparse por qué de los tipos predefinidos se usa para representar tamaños.
Código que asume sizeof
rendimientos unsigned int
y no sería portátil. size_t
Es más probable que el código que asume que produce una sea portátil.
typedef /*This part is implementation dependent */ size_t;