matthey:
Aztec C used to have 16 bit integers as default with the biggest result being more problems.
Well put :-) The problem with 16 bit integers was that at the time Aztec 'C' implemented the K&R standard, which did not have function prototypes. Hence, you had to cast function parameters to 32 bit integer values if you knew that the respective function expected this (typical example: all AmigaOS operating system functions).
But if you failed to do that for some reason (oversight, typo, etc.), the code crashed very quickly, as the parameters passed over the stack didn't match what the respective function expected to pick up. Just like with assembly language, you had to be extremely careful to get your code written correctly, or you'd have been in for an extended debugging session.
If you use integers smaller than 32 bits today with an ISO 'C' compliant compiler and proper prototypes, the worst that can happen is loss of performance, as the compiler may be forced emit code which promotes smaller integers to larger types before they could be used.