Omg, to si tak tupý, že nedokážeš pochopit, že ty typy ze STDINT.H, tzn uintXX_t a podobné jsou zavedené právě kvůli tomu, že mají vždy tolik bitů, kolik je v názvu napsáno a tedy že uint16_t je vždy 16bitový a int64_t vždy znaménkový 64bitový?
U debilit typu short, int, long je šířka platformně závislá, takže si s tím lze leda vytřít prdel a žádný normální programátor to nepoužívá.