As you know the basic data types in C are :
char
int
float
double
Obviously there are qualifiers which can be put together with above data types: The examples are
signed
unsigned
short
long
Unsigned and signed are qualifiers which can be with char or any integer.
How-ever short and long applies to int ..
The sizes allocated for these data types along with the type qualifiers are compiler and machine dependent. how-ever :
short and int should be atleast 16 bits: or 2 bytes
long are atleast 32 bits or 4 bytes
and also
short <= int <= long