SDL datatypes for width and height

The w/h fields in the surface SDL_Surface are of type int, whereas the
w/h fields in the surface SDL_Rect are of type Uint16. Is there a
reason for the difference in sign and size of the variables?

-thanks, john