unsigned = unsigned int.
Quando viene sottointeso un tipo è sempre int, tanto che in C si poteva anche sottointendere il tipo restituito dalla funzione quando si intendeva int.

Tra parentesi, sono io che non capisco più niente o è la terza volta in pochi giorni che salta fuori questa domanda?