为什么%x和%o被视为unsigned int?

Ram*_*Ram -2 c

ram@ram:~/Desktop$ cc sample.c 

sample.c: In function ‘main’:

sample.c:7: warning: format ‘%o’ expects type ‘unsigned int’, but argument 2 has type ‘long int’
Run Code Online (Sandbox Code Playgroud)

Jam*_*lis 7

因为他们被指定为服用unsigned int.

(不完全是.)