In the book "The C Language" , the only restriction on the integral data types is that
16 bits <= size of short <= size of int <= size of long ; 32bits <= size of long
(Edit: FINE, i edited the constraint to remove the confusion with the std function)
and in another book (Programming in ANSI C - Balaguruswamy) , its given that the sizeof(short) in a 16 bit machine is 8 bits (half of the size of ints which are 16 bits). Isn't this contradicting with the above given constraint?