Claro, como bien dice ivancea solo debes utilizar unsigned en el caso de que utilices números enteros que solo puedan ser positivos (números naturales). Un ejemplo podría ser los niveles de un personaje de videojuegos, pueden ir del 1 al 100 pero no puedes ser nivel -1, por ejemplo.
Incluso en ese ejemplo, que sea unsigned te quita muchas posibilidades. Por ejemplo, si quieres saber la diferencia de niveles entre dos personajes, harías:
diferencia
= abs(nivel1
- nivel2
);
Claro que si haces eso con unsigned, te puede dar valores erroneos si nivel2>nivel1.
Habría que buscar otro modo, como:
diferencia = max(nivel1,nivel2) - min(nivel1,nivel2);
Que ya es más rodeo.