I do not have access to the formal ANSI C standard.
But I have found on the internet that some compilers consider int to be 16 bit and other compilers consider int to be 32 bit. Short is always 16 bit.
What I have been told is that short is indeed formally 16 bit.
Int however depends on the bus width of the traget processor.
I you use a 16 bit processor the compiler should formally use int as being 16 bit. If you use a 32 bit processor the compiler should formally use int as being 32 bit.
This should also mean that for the processors I use professionally, the PIC16 and PIC18 processors that int should be 8 bit!
By making int dependent on the processor core width, I can imagine that it is possible to write processor independent code without know the processor bus width where the code is automaticaly optimized for the bus width.
Because many programmers use int as 16 bit values I would like to propose a compiler option to activiate a formal int option.